linux
Junkie0901
这个作者很懒,什么都没留下…
展开
-
linux 更新系统时间
1. ntpdate 命令更新时间ntpdate asia.pool.ntp.org2. date 命令更新时间例: 更新时间为: 10年12月13日date -s 101213更新时间为: 14:20:00date -s 14:20:00更新时间为 2010-12-13 14:26 date -s "2010-12-13 14:26"或d转载 2014-03-11 19:10:27 · 9403 阅读 · 0 评论 -
使用openssl库实现RSA、AES数据加密
openssl是可以很方便加密解密的库,可以使用它来对需要在网络中传输的数据加密。可以使用非对称加密:公钥加密,私钥解密。openssl提供了对RSA的支持,但RSA存在计算效率低的问题,所以一般的做法是使用对称密钥加密数据,然后再把这个只在当前有效的临时生成的对称密钥用非对称密钥的公钥加密之后传递给目标方,目标方使用约定好的非对称密钥中的私钥解开,得到数据加密的密钥,再进行数据解密,得到数据。对转载 2014-10-28 14:56:12 · 763 阅读 · 0 评论 -
linux加载共享问题error while loading shared libraries: xxx.so.0:cannot open shared object file: No such fi
在linux下运行程序时,发现了error while loading shared libraries这种错误,一时间不知道解决办法,在网上搜索,终于解决了: ./tests: error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directo转载 2014-11-10 18:22:18 · 1023 阅读 · 0 评论 -
浅析静态库链接原理
静态库的链接基本上同链接目标文件.obj/.o相同,但也有些不同的地方。本文简要描述linux下静态库在链接过程中的一些细节。静态库文件格式静态库远远不同于动态库,不涉及到符号重定位之类的问题。静态库本质上只是将一堆目标文件进行打包而已。静态库没有标准,不同的linux下都会有些细微的差别。大致的格式wiki上描述的较清楚:Global header-------------转载 2014-09-29 11:09:51 · 641 阅读 · 0 评论 -
Openssl 编程入门之 ssl编程
什么是 SSL?SSL 是一个缩写,代表的是 Secure Sockets Layer。它是支持在 Internet 上进行安全通信的 标准,并且将数据密码术集成到了协议之中。数据在离开您的计算机之前就已经被加密,然后只有 到达它预定的目标后才被解密。证书和密码学算法支持了这一切的运转,使用 OpenSSL,您将 有机会切身体会它们。理论上,如果加密的数据在到达目标之前被截取或窃听转载 2014-10-23 18:50:08 · 2849 阅读 · 0 评论 -
信号量,共享内存和消息队列
信号量当我们编写的程序使用了线程时,不管它是运行在多用户系统上,多进程系统上,还是运行在多用户多进程系统上,我们通常会发现,程序中存在着一部分临界代码,我们需要确保只有一个进程可以进入这个临界代码并拥有对资源独占的访问权信号量的定义最简单的信号量是只能取值0和1的变量,即二进制信号量,这也是信号量最常见的一种形式pv操作的定义非常简单,假设有一个信号变量sv,如下所转载 2014-05-30 18:13:51 · 812 阅读 · 0 评论 -
广播相关知识
广播域首先我们来了解一下广播域的概念。广播域是网络中能接收任一台主机发出的广播帧的所有主机集合。也就是说,如果广播域内的其中一台主机发出一个广播帧,同一广播域内所有的其它主机都可以收到该广播帧。广播域的计算如何知道一台主机是属于哪一个广播域呢?其实计算很简单,只要用主机的IP地址与子网掩码进行与运算即可知道该主机属于哪一个广播域。例如:一台主机的IP地址为192.168.23.15转载 2014-07-22 11:05:57 · 569 阅读 · 0 评论 -
Linux下高并发socket最大连接数所受的各种限制
1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制:[speng@as4 ~]$ ulimit转载 2014-05-27 15:29:27 · 542 阅读 · 0 评论 -
centos服务器抓马经历
第一给公司弄服务器没到一个星期就中转载 2014-06-09 10:54:47 · 1399 阅读 · 0 评论 -
如何用 openssl 生成RSA双密匙;签名证书;加密文件邮件
网上已有好多关于openssl的帖子,但是基本上都很“实用”,只讲如何创建证书来用于数据的加密,如何你只需要这些,那么可以去 “流浪的脚步”的博客http://blog.csdn.net/darkstar21cn/archive/2005/06/11/392492.aspx 如果你需要多了解点openssl的,继续看下去吧 openssl 的功能:转载 2014-10-28 14:34:19 · 3366 阅读 · 0 评论 -
pthread_key_t 线程存储相关
下面说一下线程中特有的线程存储, Thread Specific Data 。线程存储有什么用了?他是什么意思了?大家都知道,在多线程程序中,所有线程共享程序中的变量。现在有一全局变量,所有线程都可以使用它,改变它的值。而如果每个线程希望能单独拥有它,那么就需要使用线程存储了。表面上看起来这是一个全局变量,所有线程都可以使用它,而它的值在每一个线程中又是单独存储的。这就是线程存储的意义。下转载 2014-11-17 16:25:14 · 498 阅读 · 0 评论 -
libev 设计分析
此文主要分析libev 的设计架构与算法实现,阅读这篇文章之前,你需要对libev 的使用有大致的了解;libev 提供了很多watcher 供开发者使用 ,以下仅对最重要最常用的几个watcher 机制进行分析,从中我们可掌握整个libev的设计思想,如果你想了解更多,可查阅libev的相关代码或文档。ev_io_watcher如我们所知,新的fd总是系统可用的最小fd ,所以这转载 2015-06-12 17:57:00 · 447 阅读 · 0 评论 -
netfilter/iptables全攻略
防火墙的简介防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合,它能增强机构内部网络的安全性。它通过访问控制机制,确定哪些内部服务允许外部访问,以及允许哪些外部请求可以访问内部服务。它可以根据网络传输的类型决定IP包是否可以传进或传出内部网。防火墙通过审查经过的每一个数据包,判断它是否有相匹配的过滤规则,根据规则的先后顺序进行一一比较,直到满足其中的一条规则为止,然后依据控制机制做转载 2015-05-29 17:56:11 · 473 阅读 · 0 评论 -
iptable笔记
一、netfilter/iptable的理解 这个当初我理解不了,主要是没把netfilter理解清楚。 Netfilter是集成在内核中的,用来定义存储各种规则的。Iptalbe是修改这些规则的工具,修改后存在netfilter里面。数据包进入LINUX服务器时,先进入服务器的netfilter模块中进行判断处理。 Netfilter包含有三种表,三种表下共转载 2015-05-29 17:34:16 · 487 阅读 · 0 评论 -
iptables 命令介绍
iptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因此理解如何配置iptables将会帮助你更有效地管理Linux防火墙。如果你是第一次接触iptables,你会觉得它很复杂,但是一旦你理解iptables的工作原理,你会发现其实它很简单。首先介绍iptables的结构:iptables -> Tables -> Chains转载 2015-05-05 18:33:41 · 470 阅读 · 0 评论 -
Linux 串口编程
在linux下编写终端程序时,有规范模式 ,非规范模式(原始模式特殊的非规范模式)之分。不用于终端,而是在串口这种使用情况下,一般设置为原始模式(非规范的一种特殊情况)。但用read()函数,希望从串口接收指定的数量的字符时,往往接收到的实际字符数,都与指定的不同。如本人用read()希望接收 10 bytes的数据,但实验后发现,分了几次才接收到,俩次接收2bytes ,两次接收3bytes。转载 2015-03-09 14:23:42 · 619 阅读 · 0 评论 -
linux新的API signalfd、timerfd、eventfd使用说明
三种新的fd加入linux内核的的版本:signalfd:2.6.22timerfd:2.6.25eventfd:2.6.22三种fd的意义:signalfd:传统的处理信号的方式是注册信号处理函数;由于信号是异步发生的,要解决数据的并发访问,可重入问题。signalfd可以将信号抽象为一个文件描述符,当有信号发生时可以对其read,这样可以将信号的监听放到se转载 2015-03-06 18:40:10 · 452 阅读 · 0 评论 -
了解 Boost 单元测试框架
什么是单元测试?复杂的 C/C++ 代码中很可能有 bug,到代码编写完成之后再来测试就像大海捞针。比较谨慎的办法是,在编写各个代码段时,针对特定的区域(例如,一些包含大量计算的 C 函数或声明队列等数据结构的C++ 类),添加专门的小测试(单元测试),以在编写代码的同时进行测试。按这种方式构建的回归测试套件包含一套单元测试和一个测试驱动程序,这个程序运行测试并报告结果。转载 2015-03-05 16:56:38 · 854 阅读 · 0 评论 -
Vim插件管理利器——Vundle
Vundle是基于Git仓库的插件管理软件。Vundle将插件的安装简化为类似yum软件安装的过程,只要:BundleInstall插件就安装完了,:BundleClean之后插件就卸载了。一、Vundle的安装和使用1. Vundle的安装[ruby] view plaincopy$ git clone http://github.co转载 2014-08-25 11:37:23 · 683 阅读 · 0 评论 -
scp命令使用
\svn 删除所有的 。svn文件find . -name .svn -type d -exec rm -fr {} \;linux之cp/scp命令+scp命令详解 2011-03-09 17:27:22| 分类: Linux | 标签:linux cp scp commond |字号 订阅转载 2014-06-09 13:46:56 · 1051 阅读 · 0 评论 -
CentOS 6 的安全配置(CentOS Linux服务器安全设置)
CentOS 6 的安全配置(CentOS Linux服务器安全设置)转载 2014-06-06 11:05:06 · 923 阅读 · 0 评论 -
linux C中调用shell命令和运行shell脚本
1、system(执行shell 命令)相关函数 fork,execve,waitpid,popen表头文件 #include定义函数 int system(const char * string);函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-cstring来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的转载 2014-01-16 10:18:40 · 744 阅读 · 0 评论 -
长连接和心跳包 .
第一种设置:通过设置socket的keepalive属性#include "/usr/include/linux/tcp.h"#include "/usr/include/linux/socket.h"////KeepAlive实现,单位秒//下面代码要求有ACE,如果没有包含ACE,则请把用到的ACE函数改成linux相应的接口int keepAlive = 1;//设转载 2013-10-23 17:08:20 · 865 阅读 · 0 评论 -
recv函数返回值说明
recv函数int recv( SOCKET s, char FAR *buf, int len, int flags);不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第一个参数指定接收端套接字描述符;第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到的数据;第三个参数指明buf的长度;第四个参数一般置0。这里只描述同步So转载 2013-12-06 10:46:05 · 527 阅读 · 0 评论 -
Linux时间函数
系统环境:ubuntu10.04简介本文旨在为了解Linux各种时间类型与时间函数提供技术文档。1、Linux下常用时间类型Linux下常用时间类型有四种:time_t、struct tm、struct timeval、struct timespec1.1 time_t时间类型time_t类型在time.h中定义:[cpp] view pla转载 2014-02-10 16:08:05 · 586 阅读 · 0 评论 -
shell函数
可以将函数看作是脚本中的一段代码,但是有一个主要区别。执行函数时,它保留当前shelll和内存信息。如果执行或调用一个脚本文件中的另一段代码,将创建一个单独的shell,因而去除所有原脚本中定义的存在变量。函数可以放在同一个文件中作为一段代码,也可以放在只包含函数的单独文件中。函数名(){命令...}或者函数名(){命令1...}如果转载 2014-02-12 13:15:07 · 531 阅读 · 0 评论 -
获得Linux系统中的IP、MAC地址等信息
实际环境和特殊需求往往会将简单问题复杂化,比如计算机IP地址,对于一个连接中socket,可以直接获得本端和对端的IP、端口信息。但在一些特殊场合我们可能需要更多的信息,比如系统中有几块网卡,他们的Mac地址是多少,每块网卡分配了几个IP(一个网卡对应多个IP)等等。这些信息往往需要通过ifconfig指令来获得,对于程序员来说,在代码中调用外部的shell指令可不是个最佳方案,因为没人能转载 2014-02-13 11:30:18 · 784 阅读 · 0 评论 -
ubuntu下开启SSH服务
ubuntu开启SSH服务SSH分客户端openssh-client和openssh-server如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-serversudo apt-get inst转载 2013-10-25 16:17:12 · 590 阅读 · 0 评论 -
man c++手册
使用Linux下man已经很久了。但只是大概知道其内容的存放目录,以及man number xxx中mumber的含义。今天需要添加C++ man page。顺便将man的内容作一个较详细的了解。 0. man后面数字的含义:之前Sam在查找C库函数时,会使用#man 3 func在查找系统调用时,则使用#man 2 fork.否则有时会出现查到同名的she转载 2013-11-27 10:15:06 · 791 阅读 · 0 评论 -
Linux下如何得到本机所有IP地址及MAC地址
已知: gethost and gethostbyname,测试只能得到一个IP地址。 --------------------------------------------------------------- 原文:http://www.chinaunix.net/jh/23/161236.html ----------------------------------转载 2013-11-29 19:17:10 · 751 阅读 · 0 评论 -
Makefile.am详解
实战Makefile.amMakefile.am是一种比Makefile更高层次的规则。只需指定要生成什么目标,它由什么源文件生成,要安装到什么目录等构成。表一列出了可执行文件、静态库、头文件和数据文件,四种书写Makefile.am文件个一般格式。表 1Makefile.am一般格式对于可执行文件和静态库类型,如果只想编译,不想安装到系统中,可以用noinst_PROGR转载 2014-01-09 17:09:31 · 863 阅读 · 0 评论 -
centos/linux下网卡流量监测工具 iftop 安装及使用教程
在类Unix系统中可以使用top查看系统资源、进程、内存占用等信息。查看网络状态可以使用netstat、nmap等工具。若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop。iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等,详细的将会在后面的使用参数中说明。安装方法1、编译安装如果采用编译安装可以到iftop官网转载 2014-06-04 09:37:13 · 872 阅读 · 0 评论 -
Valgrind基本使用说明(具体说明见user manual)
Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,是公认的最接近Purify的产品,它包含一个内核——一个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务——调试,分析,或测试等。Valgrind可以检测内存泄漏和内存越界,还可以分析cache的使用等,灵活轻巧而又强大。 一 Valgrind概观Valgrind的最新版是3.2.3,该版本包含下转载 2014-04-16 14:00:12 · 830 阅读 · 0 评论 -
valgrind简单介绍
用C/C++开发其中最令人头疼的一个问题就是内存管理,有时候为了查找一个内存泄漏或者一个内存访问越界,需要要花上好几天时间,如果有一款工具能够帮助我们做这件事情就好了,valgrind正好就是这样的一款工具。Valgrind是一款基于模拟linux下的程序调试器和剖析器的软件套件,可以运行于x86, amd64和ppc32架构上。valgrind包含一个核心,它提供一个虚拟的CPU运行程序转载 2014-04-16 13:46:34 · 649 阅读 · 0 评论 -
LINUX core dump详解
1. 前言:有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的.但这不像编译错误一样会提示到文件->行, 而是没有任何信息, 使得我们的调试变得困难起来.2. gdb:有一种办法是, 我们用gdb的step, 一步一步寻找. 这放在短小的代码中是可行的, 但要让你step一个上万行的代码, 我想你会从此厌恶程序员这个名字转载 2014-03-27 17:14:46 · 594 阅读 · 0 评论 -
Linux下send函数 Broken pipe错误的解决方法
在linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。client端通过 pipe 发送信息到server端后,就关闭client端, 这时server端,返回信息给 client 端时就产生Broken pipe 信号了。对于产生信号,我们可以在产生信号前利用方法 signal(int si转载 2013-12-10 10:09:17 · 1198 阅读 · 0 评论 -
Linux下autoconf和automake使用
转自:http://hi.baidu.com/liuyanqiong/blog/item/0a6f0ad9d28e1d3d32fa1c7b.html 作为Linux下的程序开发人员,一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将转载 2014-01-03 16:43:23 · 521 阅读 · 0 评论 -
Makefile中常用的函数
参见:《Makefile中常用的函数》http://atu82.bokee.com/4696905.htmlhttp://atu82.bokee.com/4696912.html出自:http://blog.csdn.net/openme_openwrt/article/details/8146339在Makefi转载 2014-01-07 17:16:20 · 583 阅读 · 0 评论 -
关于select函数中struct timeval问题
如果select调用中设置了等待时间,那么每次调用时都需要重新对这个时间赋值么?就像对fd_set处理一样。 例如: fd_set readfd; struct timval tv; while(1) { FD_ZERO(&readfd); FD_SET(fd, &readfd); tv.tv_sec = 2; tv.tv_usec = 0;转载 2013-11-05 16:42:19 · 4079 阅读 · 0 评论 -
Nginx负载均衡
1.普通的Http代理: 注意:在upstream中不要使用http://backend1.example.com,而在proxy_pass中则要加上http://backend upstream backend { server backend1.example.com weight=5; server backend2.example.com:8080;转载 2015-09-10 14:41:41 · 436 阅读 · 0 评论