﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-少年阿宾-随笔分类-linux</title><link>http://www.blogjava.net/stevenjohn/category/52994.html</link><description>那些青春的岁月</description><language>zh-cn</language><lastBuildDate>Wed, 04 Mar 2015 08:12:37 GMT</lastBuildDate><pubDate>Wed, 04 Mar 2015 08:12:37 GMT</pubDate><ttl>60</ttl><item><title>Linux端口转发</title><link>http://www.blogjava.net/stevenjohn/archive/2015/03/02/423128.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Mon, 02 Mar 2015 03:44:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2015/03/02/423128.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/423128.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2015/03/02/423128.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/423128.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/423128.html</trackback:ping><description><![CDATA[<div><div>centos端口转发神器：socat安装及使用</div>sudo nohup socat tcp-l:6666,reuseaddr,fork tcp:114.80.***.***:80 &amp;<br /><br /><div>sudo nohup socat tcp-l:外部访问端口,reuseaddr,fork tcp:192.168.xxx.xxx:内部转发端口</div><br /><div>Linux下Iptables端口转发功能的解决<br /><p>将881请求发至10.10.2.00:881端口</p><div>iptables -t nat -A PREROUTING -p tcp -m tcp --dport 881 -j DNAT --to-destination 10.10.2.200:881 &nbsp;</div><br /></div></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/423128.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2015-03-02 11:44 <a href="http://www.blogjava.net/stevenjohn/archive/2015/03/02/423128.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux 服务器端命令</title><link>http://www.blogjava.net/stevenjohn/archive/2015/01/11/422170.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Sat, 10 Jan 2015 18:42:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2015/01/11/422170.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/422170.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2015/01/11/422170.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/422170.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/422170.html</trackback:ping><description><![CDATA[1、free -m<br />2、uptime<br />3、vmstat 1 5<br />4、iostat -x -h -t<br />5、mpstat -P ALL<br />6、netstat -natp | grep 8080<br />7、netstat -natp | find "80"(windows)<br />8、ps -aux | grep java<br />9、ps -ef | grep java<br />10、top -H -p 9768<img src ="http://www.blogjava.net/stevenjohn/aggbug/422170.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2015-01-11 02:42 <a href="http://www.blogjava.net/stevenjohn/archive/2015/01/11/422170.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何查看服务器当前的负载信息 </title><link>http://www.blogjava.net/stevenjohn/archive/2014/12/24/421747.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Wed, 24 Dec 2014 05:34:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2014/12/24/421747.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/421747.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2014/12/24/421747.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/421747.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/421747.html</trackback:ping><description><![CDATA[<h1><p><span style="font-family: 宋体;">通过什么方法来排查是否linux服务器的负载过大？</span></p><div><span style="font-family: 宋体;">通过top命令来查看服务器负载</span></div><p><span style="font-family: 宋体;">&nbsp;再对此Linux服务器性能分析之前，先了解下Linux系统Load average负载的知识，负载均值在uptime&nbsp;或者top&nbsp;命令中可以看到，它们可能会显示成这个样子：load average: 0.15, 0.14, 0.11<br />很多人会这样理解负载均值：三个数分别代表不同时间段的系统平均负载（一分钟、五分钟、以及十五分钟），它们的数字当然是越小越好。数字越高，说明服务器的负载越大,这也可能是服务器出现某种问题的信号。<br /></span></p><div><p><span style="font-family: 宋体;">&nbsp;&nbsp;&nbsp;&nbsp; 一个单核的处理器可以形象得比喻成一条单车道。如果前面没有车辆在等待，那么你可以告诉后面的司机通过。如果车辆众多，那么需要告知他们可能需要稍等一会。</span></p></div><div><span style="font-family: 宋体;">因此，需要些特定的代号表示目前的车流情况，例如：<br /> 　　0.00&nbsp;表示目前桥面上没有任何的车流。实际上这种情况与0.00&nbsp;和1.00&nbsp;之间是相同的，总而言之很通畅，过往的车辆可以丝毫不用等待的通过。<br /> 　　1.00&nbsp;表示刚好是在这座桥的承受范围内。这种情况不算糟糕，只是车流会有些堵，不过这种情况可能会造成交通越来越慢。<br /> 　　超过1.00，那么说明这座桥已经超出负荷，交通严重的拥堵。那么情况有多糟糕？例如2.00&nbsp;的情况说明车流已经超出了桥所能承受的一倍，那么将有多余过桥一倍的车辆正在焦急的等待。3.00&nbsp;的话情况就更不妙了，说明这座桥基本上已经快承受不了，还有超出桥负载两倍多的车辆正在等待。</span></div><div><span style="font-family: 宋体;">&nbsp;&nbsp;&nbsp; 上面的情况和处理器的负载情况非常相似。一辆汽车的过桥时间就好比是处理器处理某线程的实际时间。Unix&nbsp;系统定义的进程运行时长为所有处理器内核的处理时间加上线程在队列中等待的时间。</span></div><div><span style="font-family: 宋体;">&nbsp;&nbsp;&nbsp; 和收过桥费的管理员一样，你当然希望你的汽车（操作）不会被焦急的等待。所以，理想状态下，都希望负载平均值小于1.00&nbsp;。当然不排除部分峰值会超过1.00，但长此以往保持这个状态，就说明会有问题，这时候你应该会很焦急。</span></div><div><span style="font-family: 宋体;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;所以你说的理想负荷为1.00&nbsp;？&#8221;</span></div><div><span style="font-family: 宋体;">&nbsp;&nbsp;&nbsp;&nbsp;嗯，这种情况其实并不完全正确。负荷1.00&nbsp;说明系统已经没有剩余的资源了。在实际情况中，有经验的系统管理员都会将这条线划在0.70：</span></div><div><span style="font-family: 宋体;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;需要进行调查法则&#8221;：如果长期你的系统负载在0.70&nbsp;上下，那么你需要在事情变得更糟糕之前，花些时间了解其原因。</span></div><div><span style="font-family: 宋体;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;现在就要修复法则&#8221;：1.00&nbsp;。如果你的服务器系统负载长期徘徊于1.00，那么就应该马上解决这个问题。否则，你将半夜接到你上司的电话，这可不是件令人愉快的事情。</span></div><div><span style="font-family: 宋体;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;凌晨三点半锻炼身体法则&#8221;：5.00。如果你的服务器负载超过了5.00&nbsp;这个数字，那么你将失去你的睡眠，还得在会议中说明这情况发生的原因，总之千万不要让它发生。</span></div><div><span style="font-family: 宋体;">&nbsp;&nbsp;&nbsp; 那么多个处理器呢？我的均值是3.00，但是系统运行正常！哇喔，你有四个处理器的主机？那么它的负载均值在3.00&nbsp;是很正常的。在多处理器系统中，负载均值是基于内核的数量决定的。以100%&nbsp;负载计算，1.00&nbsp;表示单个处理器，而2.00&nbsp;则说明有两个双处理器，那么4.00&nbsp;就说明主机具有四个处理器。</span></div><div><span style="font-family: 宋体;">　　回到我们上面有关车辆过桥的比喻。1.00&nbsp;我说过是&#8220;一条单车道的道路&#8221;。那么在单车道1.00&nbsp;情况中，说明这桥梁已经被车塞满了。而在双处理器系统中，这意味着多出了一倍的负载，也就是说还有50%&nbsp;的剩余系统资源-&nbsp;因为还有另外条车道可以通行。</span></div><span style="font-family: 宋体;">所以，单处理器已经在负载的情况下，双处理器的负载满额的情况是2.00，它还有一倍的资源可以利用。</span> <div>&nbsp;</div><p><span style="font-family: 宋体;">从上图的top命令可以了解到，Linux服务器运行了5天23小时20分，在load average的数据来看，这台快吧Linux无盘服务器可以说是压力为零，运行十分流畅。&nbsp;</span></p><span style="font-family: 宋体;">方法二：输入<span style="font-size: 12pt;"><span style="font-size: 12pt;">iostat -x -k -t</span>&nbsp;</span></span> <p><span style="font-family: 宋体;">说明：%util:一秒中有百分之多少的时间用于I/O操作，或者说一秒中有多少时间I/O队列是非空的。<br /> 即delta(use)/s/1000 (因为use的单位为毫秒)<br />如果%util接近100%，说明产生的I/O请求太多，I/O系统已经满负荷，该磁盘可能存在瓶颈。</span></p><p><span style="font-family: 宋体;">方法三：</span></p><span style="font-family: 宋体;">如果玩游戏很卡，可以用hdparm&nbsp;&#8211;t&nbsp;/dev/磁盘名称来测试磁盘性能是否达标，下图是单个希捷1T的盘测试的结果说明：sd表示硬盘是SATA，SCSI或者SAS，a表示串口的第一块硬盘</span> <p><span style="font-family: 宋体;">&nbsp;本文转摘自：http://www.flybaaa.com/help/69_1.html</span></p><p><span style="font-family: 宋体;"><br /></span></p><p><span style="font-family: 宋体;"><br /></span></p><p>&nbsp;</p><p>一直以来以为通过top然后按数字1键，查到的cpu个数是服务器的物理cpu个数，今天在看服务器的硬件配置清单中发现一服务器的物理cpu个数是4个，我就奇怪了，这台机子我的影响很深，明明是48啊，当时通过top 1查看cpu信息还提示 &#8220;Sorry ,terminal is not big enough&#8221;。想当初服务器只能识别到32个。还是重新编译内核搞定的。后来经过查询原来不是这样滴，top 1查看的是逻辑cpu个数，一下为记。<br /> 查看Linux服务器的CPU详细情况<br /> 判断Linux服务器CPU情况的依据如下：<br /> 具有相同core id的CPU是同一个core的超线程。(Any cpu with the same core id are hyperthreads in the same core.)<br />具有相同physical id的CPU是同一个CPU封装的线程或核心。(Any cpu with the same physical id are threads or cores in the same physical socket.)<br />下面举例说明。<br /> 物理CPU个数如下：</p><pre>[root@dbabc.net ～］# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 4</pre><p>每个物理CPU中core的个数(即核数)如下：</p><pre>[root@dbabc.net ～］# cat /proc/cpuinfo| grep "cpu cores"| uniq cpu cores       : 12</pre><p>逻辑CPU的个数如下：</p><pre>［root@dbabc.net ～］#cat /proc/cpuinfo| grep "processor"| wc -l 48</pre><p>按理说物理CPU个数&#215;核数就应该等于逻辑CPU的</p><br /><p><span style="font-family: 宋体;"><a href="http://dbabc.net/">Dbabc.Net</a> [http://dbabc.net] <br />本文链接：<a href="http://dbabc.net/archives/2012/02/13/linux-cpu-info-count.shtml" rel="bookmark">http://dbabc.net/archives/2012/02/13/linux-cpu-info-count.shtml</a><br /></span></p></h1><img src ="http://www.blogjava.net/stevenjohn/aggbug/421747.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2014-12-24 13:34 <a href="http://www.blogjava.net/stevenjohn/archive/2014/12/24/421747.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tcpdump抓包规则常用命令</title><link>http://www.blogjava.net/stevenjohn/archive/2014/12/06/421133.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Sat, 06 Dec 2014 09:28:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2014/12/06/421133.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/421133.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2014/12/06/421133.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/421133.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/421133.html</trackback:ping><description><![CDATA[<div><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->下面的例子全是以抓取eth0接口为例，如果不加&#8221;-i&nbsp;eth0&#8221;是表示抓取所有的接口包括lo。<br />首先安装tcpdump包：yum&nbsp;install&nbsp;-y&nbsp;tcpdump<br /><br />&nbsp;1、抓取包含172.16.1.122的数据包<br />#&nbsp;tcpdump&nbsp;-i&nbsp;eth0&nbsp;-vnn&nbsp;host&nbsp;172.16.1.122<br />&nbsp;<br />2、抓取包含172.16.1.0/24网段的数据包<br />#&nbsp;tcpdump&nbsp;-i&nbsp;eth0&nbsp;-vnn&nbsp;net&nbsp;172.16.1.0/24<br />&nbsp;<br />3、抓取包含端口22的数据包<br />#&nbsp;tcpdump&nbsp;-i&nbsp;eth0&nbsp;-vnn&nbsp;port&nbsp;22<br />&nbsp;<br />4、抓取udp协议的数据包<br />#&nbsp;tcpdump&nbsp;-i&nbsp;eth0&nbsp;-vnn&nbsp;&nbsp;udp<br />&nbsp;<br />5、抓取icmp协议的数据包<br />#&nbsp;tcpdump&nbsp;-i&nbsp;eth0&nbsp;-vnn&nbsp;icmp<br /><br />6、抓取arp协议的数据包<br />#&nbsp;tcpdump&nbsp;-i&nbsp;eth0&nbsp;-vnn&nbsp;arp<br />&nbsp;<br />7、抓取ip协议的数据包<br />#&nbsp;tcpdump&nbsp;-i&nbsp;eth0&nbsp;-vnn&nbsp;ip<br />&nbsp;<br />8、抓取源ip是172.16.1.122数据包。<br />#&nbsp;tcpdump&nbsp;-i&nbsp;eth0&nbsp;-vnn&nbsp;src&nbsp;host&nbsp;172.16.1.122<br />&nbsp;<br />9、抓取目的ip是172.16.1.122数据包<br />#&nbsp;tcpdump&nbsp;-i&nbsp;eth0&nbsp;-vnn&nbsp;dst&nbsp;host&nbsp;172.16.1.122<br />&nbsp;<br />10、抓取源端口是22的数据包<br />#&nbsp;tcpdump&nbsp;-i&nbsp;eth0&nbsp;-vnn&nbsp;src&nbsp;port&nbsp;22<br />&nbsp;<br />11、抓取源ip是172.16.1.253且目的ip是22的数据包<br />#&nbsp;tcpdump&nbsp;-i&nbsp;eth0&nbsp;-vnn&nbsp;src&nbsp;host&nbsp;172.16.1.253&nbsp;and&nbsp;dst&nbsp;port&nbsp;22<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />12、抓取源ip是172.16.1.122或者包含端口是22的数据包<br />#&nbsp;tcpdump&nbsp;-i&nbsp;eth0&nbsp;-vnn&nbsp;src&nbsp;host&nbsp;172.16.1.122&nbsp;or&nbsp;port&nbsp;22<br />&nbsp;<br />13、抓取源ip是172.16.1.122且端口不是22的数据包<br />[root@&nbsp;ftp]#&nbsp;tcpdump&nbsp;-i&nbsp;eth0&nbsp;-vnn&nbsp;src&nbsp;host&nbsp;172.16.1.122&nbsp;and&nbsp;not&nbsp;port&nbsp;22<br /><br />14、抓取源ip是172.16.1.2且目的端口是22，或源ip是172.16.1.65且目的端口是80的数据包。<br />#&nbsp;tcpdump&nbsp;-i&nbsp;eth0&nbsp;-vnn&nbsp;\(&nbsp;src&nbsp;host&nbsp;172.16.1.2&nbsp;and&nbsp;dst&nbsp;port&nbsp;22&nbsp;\)&nbsp;or&nbsp;&nbsp;&nbsp;\(&nbsp;src&nbsp;host&nbsp;172.16.1.65&nbsp;and&nbsp;dst&nbsp;port&nbsp;80&nbsp;\)<br />&nbsp;<br />15、抓取源ip是172.16.1.59且目的端口是22，或源ip是172.16.1.68且目的端口是80的数据包。<br />#&nbsp;tcpdump&nbsp;-i&nbsp;&nbsp;eth0&nbsp;-vnn&nbsp;'src&nbsp;host&nbsp;172.16.1.59&nbsp;and&nbsp;dst&nbsp;port&nbsp;22'&nbsp;or&nbsp;&nbsp;'&nbsp;src&nbsp;host&nbsp;172.16.1.68&nbsp;and&nbsp;dst&nbsp;port&nbsp;80&nbsp;'<br />&nbsp;<br />16、把抓取的数据包记录存到/tmp/fill文件中，当抓取100个数据包后就退出程序。<br />#&nbsp;tcpdump&nbsp;&#8211;i&nbsp;eth0&nbsp;-vnn&nbsp;-w&nbsp;&nbsp;/tmp/fil1&nbsp;-c&nbsp;100<br />&nbsp;<br />17、从/tmp/fill记录中读取tcp协议的数据包<br />#&nbsp;tcpdump&nbsp;&#8211;i&nbsp;eth0&nbsp;-vnn&nbsp;-r&nbsp;&nbsp;/tmp/fil1&nbsp;tcp<br />&nbsp;<br />18、从/tmp/fill记录中读取包含172.16.1.58的数据包<br />#&nbsp;tcpdump&nbsp;&#8211;i&nbsp;eth0&nbsp;-vnn&nbsp;-r&nbsp;&nbsp;/tmp/fil1&nbsp;host&nbsp;&nbsp;172.16.1.58</div></div><div></div><br /><br /><p align="left" style="margin: 0px; padding: 0px; font-family: Arial; line-height: 26px; background-color: #ffffff;">tcpdump抓包并保存成cap文件</p><p style="margin: 0px; padding: 0px; font-family: Arial; line-height: 26px; background-color: #ffffff;"></p><table border="0" cellpadding="0" width="100%" style="color: #000000; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;"><tbody><tr><td><p align="left" style="margin: 0px; padding: 0px;">首选介绍一下tcpdump的常用参数</p><p align="left" style="margin: 0px; padding: 0px;">tcpdump采用命令行方式，它的命令格式为：<br />　　tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]<br />　　　　　　　　　　[ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]<br />　　　　　　　　　　[ -T 类型 ] [ -w 文件名 ] [表达式 ]</p><p align="left" style="margin: 0px; padding: 0px;">1. tcpdump的选项介绍<br />　　　-a 　　　将网络地址和广播地址转变成名字；<br />　　　-d 　　　将匹配信息包的代码以人们能够理解的汇编格式给出；<br />　　　-dd 　　　将匹配信息包的代码以c语言程序段的格式给出；<br />　　　-ddd 　　　将匹配信息包的代码以十进制的形式给出；<br />　　　-e 　　　在输出行打印出数据链路层的头部信息；<br />　　　-f 　　　将外部的Internet地址以数字的形式打印出来；<br />　　　-l 　　　使标准输出变为缓冲行形式；<br />　　　-n 　　　不把网络地址转换成名字；<br />　　　-t 　　　在输出的每一行不打印时间戳；<br />　　　-v 　　　输出一个稍微详细的信息，例如在ip包中可以包括ttl和服务类型的信息；<br />　　　-vv 　　　输出详细的报文信息；<br />　　　-c 　　　在收到指定的包的数目后，tcpdump就会停止；<br />　　　-F 　　　从指定的文件中读取表达式,忽略其它的表达式；<br />　　　-i 　　　指定监听的网络接口；<br />　　　-r 　　　从指定的文件中读取包(这些包一般通过-w选项产生)；<br />　　　-w 　　　直接将包写入文件中，并不分析和打印出来；<br />　　　-T 　　　将监听到的包直接解释为指定的类型的报文，常见的类型有rpc（远程过程<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 调用）和snmp（简单网络管理协议；）</p><p align="left" style="margin: 0px; padding: 0px;">当网络出现故障时，由于直接用tcpdump抓包分析有点困难，而且当网络中数据比较多时更不容易分析，使用tcpdump的-w参数+ethereal分析会很好的解决这个问题，具体参数如下：</p><p align="left" style="margin: 0px; padding: 0px;">tcpdump -i eth1 -c 2000 -w eth1.cap</p><p align="left" style="margin: 0px; padding: 0px;">-i eth1 只抓eth1口的数据</p><p align="left" style="margin: 0px; padding: 0px;">-c 2000代表数据包的个数，也就是只抓2000个数据包</p><p align="left" style="margin: 0px; padding: 0px;">-w eth1.cap 保存成cap文件，方便用ethereal分析</p><p align="left" style="margin: 0px; padding: 0px;">抓完数据包后ftp到你的FTP服务器，put一下，然后用ethereal软件打开就可以很直观的分析了</p><p align="left" style="margin: 0px; padding: 0px;">注：有时将.cap文件上传到FTP服务器后，发现用ethreal打开时提示数据包大于65535个，这是你在ftp上传或者下载的时候没有用bin的模式上传的原因。</p><p align="left" style="margin: 0px; padding: 0px;">另：有的网站提示在tcpdump中用-s 0命令，例如 tcpdump -i eth1 -c 2000 -s0 -w eth1.cap，可实际运行该命令时系统却提示无效的参数,去掉-s 0参数即可</p><p align="left" style="margin: 0px; padding: 0px;">例子：</p><p align="left" style="margin: 0px; padding: 0px;">[root@localhost cdr]#tcpdump -i eth0 -t tcp -s 60000 -w diaoxian.cap&nbsp;<br />[root@localhost cdr]# tcpdump host 58.240.72.195 -s 60000 -w x.cap</p></td></tr></tbody></table><p style="margin: 0px; padding: 0px; font-family: Arial; line-height: 26px; background-color: #ffffff;"></p><p style="margin: 0px; padding: 0px; font-family: Arial; line-height: 26px; background-color: #ffffff;">&nbsp;</p><p style="margin: 0px; padding: 0px; font-family: Arial; line-height: 26px; background-color: #ffffff;">tcpdump 的抓包保存到文件的命令参数是-w xxx.cap<br />抓eth1的包&nbsp;<br />tcpdump -i eth1 -w /tmp/xxx.cap&nbsp;<br />抓 192.168.1.123的包&nbsp;<br />tcpdump -i eth1 host 192.168.1.123 -w /tmp/xxx.cap&nbsp;<br />抓192.168.1.123的80端口的包&nbsp;<br />tcpdump -i eth1 host 192.168.1.123 and port 80 -w /tmp/xxx.cap&nbsp;<br />抓192.168.1.123的icmp的包&nbsp;<br />tcpdump -i eth1 host 192.168.1.123 and icmp -w /tmp/xxx.cap&nbsp;<br />抓192.168.1.123的80端口和110和25以外的其他端口的包&nbsp;<br />tcpdump -i eth1 host 192.168.1.123 and ! port 80 and ! port 25 and ! port 110 -w /tmp/xxx.cap&nbsp;<br />抓vlan 1的包&nbsp;<br />tcpdump -i eth1 port 80 and vlan 1 -w /tmp/xxx.cap&nbsp;<br />抓pppoe的密码&nbsp;<br />tcpdump -i eth1 pppoes -w /tmp/xxx.cap&nbsp;<br />以100m大小分割保存文件， 超过100m另开一个文件 -C 100m&nbsp;<br />抓10000个包后退出 -c 10000&nbsp;<br />后台抓包， 控制台退出也不会影响：&nbsp;<br />nohup tcpdump -i eth1 port 110 -w /tmp/xxx.cap &amp;&nbsp;<br />抓下来的文件可以直接用ethereal 或者wireshark打开。 wireshark就是新版的ethereal，程序换名了</p><div></div><br /><br /><br /><div>sudo tcpdump -s0 -A host 192.168.234.249</div><div>sudo tcpdump -i eth0 -vnn port 8100<br /><br /><br /></div><div></div><p style="margin: 0px; padding: 0px; font-family: Arial; line-height: 26px; background-color: #ffffff;">转载自：</p><p style="margin: 0px; padding: 0px; font-family: Arial; line-height: 26px; background-color: #ffffff;"><a href="http://blog.sina.com.cn/s/blog_4a071ed80100sv13.html" style="color: #ff9900; text-decoration: none;">http://blog.sina.com.cn/s/blog_4a071ed80100sv13.html</a></p><img src ="http://www.blogjava.net/stevenjohn/aggbug/421133.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2014-12-06 17:28 <a href="http://www.blogjava.net/stevenjohn/archive/2014/12/06/421133.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何查看Web服务器并发请求连接数</title><link>http://www.blogjava.net/stevenjohn/archive/2014/03/16/411093.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Sun, 16 Mar 2014 07:44:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2014/03/16/411093.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/411093.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2014/03/16/411093.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/411093.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/411093.html</trackback:ping><description><![CDATA[<div><div>1、查看Web服务器（Nginx Apache）的并发请求数及其TCP连接状态：</div><div>&nbsp;</div><div>netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'</div><div>netstat -n|grep &nbsp;^tcp|awk '{print $NF}'|sort -nr|uniq -c</div><div>&nbsp;</div><div>或者：</div><div>netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"t",state[key]}'</div><div>返回结果一般如下：</div><div>&nbsp;</div><div>LAST_ACK 5 （正在等待处理的请求数）</div><div>SYN_RECV 30</div><div>ESTABLISHED 1597 （正常数据传输状态）</div><div>FIN_WAIT1 51</div><div>FIN_WAIT2 504</div><div>TIME_WAIT 1057 （处理完毕，等待超时结束的请求数）</div><div>&nbsp;</div><div>其他参数说明：</div><div>&nbsp;</div><div>CLOSED：无连接是活动的或正在进行</div><div>LISTEN：服务器在等待进入呼叫</div><div>SYN_RECV：一个连接请求已经到达，等待确认</div><div>SYN_SENT：应用已经开始，打开一个连接</div><div>ESTABLISHED：正常数据传输状态</div><div>FIN_WAIT1：应用说它已经完成</div><div>FIN_WAIT2：另一边已同意释放</div><div>ITMED_WAIT：等待所有分组死掉</div><div>CLOSING：两边同时尝试关闭</div><div>TIME_WAIT：另一边已初始化一个释放</div><div>LAST_ACK：等待所有分组死掉</div><div>&nbsp;</div><div>2、查看Nginx运行进程数</div><div>ps -ef | grep nginx | wc -l</div><div>返回的数字就是nginx的运行进程数，如果是apache则执行</div><div>ps -ef | grep httpd | wc -l</div><div>&nbsp;</div><div>3、查看Web服务器进程连接数：</div><div>netstat -antp | grep 80 | grep ESTABLISHED -c</div><div>&nbsp;</div><div>4、查看MySQL进程连接数：</div><div>ps -axef | grep mysqld -c</div><div>&nbsp;</div></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/411093.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2014-03-16 15:44 <a href="http://www.blogjava.net/stevenjohn/archive/2014/03/16/411093.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>十八.  和系统运行状况相关的Shell命令:</title><link>http://www.blogjava.net/stevenjohn/archive/2013/03/05/396064.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Tue, 05 Mar 2013 04:12:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2013/03/05/396064.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/396064.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2013/03/05/396064.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/396064.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/396064.html</trackback:ping><description><![CDATA[<div id="cnblogs_post_body">
<p><span style="font-size: 14pt"><strong><span style="color: #ff6600">十八.&nbsp; 和系统运行状况相关的Shell命令<span style="color: #ff6600; font-size: 14pt"><strong>:</strong></span></span></strong></span><br /><br />&nbsp;<span style="font-size: 16px"><strong>&nbsp; &nbsp;1.&nbsp; Linux的实时监测命令<span style="color: #ff0000">(watch):</span></strong></span><br />&nbsp;&nbsp; &nbsp;watch 是一个非常实用的命令，可以帮你实时监测一个命令的运行结果，省得一遍又一遍的手动运行。该命令最为常用的两个选项是-d和-n，其中-n表示间隔多少秒执行一次"command"，-d表示高亮发生变化的位置。下面列举几个在watch中常用的实时监视命令：<br />&nbsp;&nbsp; &nbsp;<em><span style="color: #0000ff">/&gt; watch -d -n 1 'who'</span></em>&nbsp;&nbsp; #每隔一秒执行一次who命令，以监视服务器当前用户登录的状况<br />&nbsp;&nbsp; &nbsp;Every 1.0s: who&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sat Nov 12 12:37:18 2011<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;stephen&nbsp; tty1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-11-11 17:38 (:0)<br />&nbsp;&nbsp; &nbsp;stephen&nbsp; pts/0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-11-11 17:39 (:0.0)<br />&nbsp;&nbsp; &nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pts/1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-11-12 10:01 (192.168.149.1)<br />&nbsp;&nbsp; &nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pts/2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-11-12 11:41 (192.168.149.1)<br />&nbsp;&nbsp; &nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pts/3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-11-12 12:11 (192.168.149.1)<br />&nbsp;&nbsp; &nbsp;stephen&nbsp; pts/4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-11-12 12:22 (:0.0)<br />&nbsp;&nbsp; &nbsp;<span style="color: #ff0000">此时通过其他Linux客户端工具以root的身份登录当前Linux服务器，再观察watch命令的运行变化。</span><br />&nbsp;&nbsp; &nbsp;Every 1.0s: who&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sat Nov 12 12:41:09 2011<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;stephen&nbsp; tty1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-11-11 17:38 (:0)<br />&nbsp;&nbsp; &nbsp;stephen&nbsp; pts/0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-11-11 17:39 (:0.0)<br />&nbsp;&nbsp; &nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pts/1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-11-12 10:01 (192.168.149.1)<br />&nbsp;&nbsp; &nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pts/2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-11-12 11:41 (192.168.149.1)<br />&nbsp;&nbsp; &nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pts/3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-11-12 12:40 (192.168.149.1)<br />&nbsp;&nbsp; &nbsp;stephen&nbsp; pts/4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-11-12 12:22 (:0.0)<br /><span style="background-color: #ffff00">&nbsp;&nbsp; &nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pts/5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-11-12 12:41 (192.168.149.1)</span><br />&nbsp;&nbsp;&nbsp; <span style="color: #ff0000">最后一行中被高亮的用户为新登录的root用户。</span><span style="color: #ff0000">此时按CTRL + C可以退出正在执行的watch监控进程。</span><br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; &nbsp;#watch可以同时运行多个命令，命令间用分号分隔。<br />&nbsp;&nbsp; &nbsp;#以下命令监控磁盘的使用状况，以及当前目录下文件的变化状况，包括文件的新增、删除和文件修改日期的更新等。<br />&nbsp;&nbsp; &nbsp;<em><span style="color: #0000ff">/&gt; watch -d -n 1 'df -h; ls -l'</span></em><br />&nbsp;&nbsp; &nbsp;Every 1.0s: df -h; ls -l&nbsp;&nbsp;&nbsp;&nbsp; Sat Nov 12 12:55:00 2011<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;Filesystem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Size&nbsp; Used Avail Use% Mounted on<br />&nbsp;&nbsp; &nbsp;/dev/sda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.8G&nbsp; 3.3G&nbsp; 2.2G&nbsp; 61% /<br />&nbsp;&nbsp; &nbsp;tmpfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 504M&nbsp; 420K&nbsp; 504M&nbsp;&nbsp; 1% /dev/shm<br />&nbsp;&nbsp; &nbsp;total 20<br />&nbsp;&nbsp; &nbsp;-rw-r--r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2<br />&nbsp;&nbsp; &nbsp;-rw-r--r--. 1 root root&nbsp;&nbsp; 183 Nov 11 08:02 users<br />&nbsp;&nbsp; &nbsp;-rw-r--r--. 1 root root&nbsp;&nbsp; 279 Nov 11 08:45 users2<br />&nbsp;&nbsp; &nbsp;此时通过另一个Linux控制台窗口，在watch监视的目录下，如/home/stephen/test，执行下面的命令<br />&nbsp;&nbsp; &nbsp;<em><span style="color: #0000ff">/&gt; touch aa</span></em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #在执行该命令之后，另一个执行watch命令的控制台将有如下变化<br />&nbsp;&nbsp; &nbsp;Every 1.0s: df -h; ls -l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sat Nov 12 12:57:08 2011<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;Filesystem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Size&nbsp; Used Avail Use% Mounted on<br />&nbsp;&nbsp; &nbsp;/dev/sda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.8G&nbsp; 3.3G&nbsp; 2.2G&nbsp; 61% /<br />&nbsp;&nbsp; &nbsp;tmpfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 504M&nbsp; 420K&nbsp; 504M&nbsp;&nbsp; 1% /dev/shm<br />&nbsp;&nbsp; &nbsp;total 20<br />&nbsp;&nbsp;<span style="background-color: #ffff00"> &nbsp;-rw-r--r--. 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 Nov 12 12:56 aa</span><br />&nbsp;&nbsp; &nbsp;-rw-r--r--. 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 Nov 12 10:02 datafile3<br />&nbsp;&nbsp; &nbsp;-rw-r--r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2<br />&nbsp;&nbsp; &nbsp;-rw-r--r--. 1 root root&nbsp;&nbsp;&nbsp;&nbsp; 183 Nov 11 08:02 users<br />&nbsp;&nbsp; &nbsp;-rw-r--r--. 1 root root&nbsp;&nbsp;&nbsp;&nbsp; 279 Nov 11 08:45 users2<br />&nbsp;&nbsp;&nbsp; <span style="color: #ff0000">其中黄色高亮的部分，为touch aa命令执行之后watch输出的高亮变化部分。</span></p>
<p>&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; &nbsp;<span style="font-size: 16px"><strong>2.&nbsp; 查看当前系统内存使用状况<span style="color: #ff0000">(free)</span>：</strong></span><br />&nbsp;&nbsp; &nbsp;free命令有以下几个常用选项：</p>
<table style="width: 450px" border="0" align="center">
<tbody>
<tr>
<td style="text-align: center"><strong><span style="color: #0000ff; font-size: 13px">选项</span></strong></td>
<td style="text-align: center"><strong><span style="color: #0000ff; font-size: 13px">说明</span></strong></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-b</span></td>
<td><span style="color: #0000ff; font-size: 13px">以字节为单位显示数据。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-k</span></td>
<td><span style="color: #0000ff; font-size: 13px">以千字节(KB)为单位显示数据(缺省值)。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-m</span></td>
<td><span style="color: #0000ff; font-size: 13px">以兆(MB)为单位显示数据。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-s delay</span></td>
<td><span style="color: #0000ff; font-size: 13px">该选项将使free持续不断的刷新，每次刷新之间的间隔为delay指定的秒数，如果含有小数点，将精确到毫秒，如0.5为500毫秒，1为一秒。</span></td></tr></tbody></table>
<p>&nbsp;&nbsp;&nbsp; free命令输出的表格中包含以下几列：</p>
<table style="width: 450px" border="0" align="center">
<tbody>
<tr>
<td style="text-align: center"><strong><span style="color: #0000ff; font-size: 13px">列名</span></strong></td>
<td style="text-align: center"><strong><span style="color: #0000ff; font-size: 13px">说明</span></strong></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">total</span></td>
<td><span style="color: #0000ff; font-size: 13px">总计物理内存的大小。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">used</span></td>
<td><span style="color: #0000ff; font-size: 13px">已使用的内存数量。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">free</span></td>
<td><span style="color: #0000ff; font-size: 13px">可用的内存数量。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">Shared</span></td>
<td><span style="color: #0000ff; font-size: 13px">多个进程共享的内存总额。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">Buffers/cached</span></td>
<td><span style="color: #0000ff; font-size: 13px">磁盘缓存的大小。</span></td></tr></tbody></table>
<p><br />&nbsp;&nbsp; &nbsp;见以下具体示例和输出说明：<br /><em><span style="color: #0000ff">&nbsp;&nbsp; &nbsp;/&gt; free -k</span></em><br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; total&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; used&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; free&nbsp;&nbsp;&nbsp;&nbsp; shared&nbsp;&nbsp;&nbsp; buffers&nbsp;&nbsp;&nbsp;&nbsp; cached<br /><span style="background-color: #ff0000">&nbsp;&nbsp; &nbsp;Mem:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1031320&nbsp;&nbsp;&nbsp;&nbsp; 671776&nbsp;&nbsp;&nbsp;&nbsp; 359544&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 88796&nbsp;&nbsp;&nbsp;&nbsp; 352564</span><br /><span style="background-color: #008000">&nbsp;&nbsp; &nbsp;-/+ buffers/cache:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 230416&nbsp;&nbsp;&nbsp;&nbsp; 800904</span><br />&nbsp;&nbsp; &nbsp;Swap:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 204792&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 204792<br />&nbsp;&nbsp; &nbsp;对于free命令的输出，我们只需关注红色高亮的输出行和绿色高亮的输出行，见如下具体解释：<br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;红色输出行：该行使从操作系统的角度来看待输出数据的，used(671776)表示内核(Kernel)+Applications+buffers+cached。free(359544)表示系统还有多少内存可供使用。</span><br /><span style="color: #008000">&nbsp;&nbsp; &nbsp;绿色输出行：该行则是从应用程序的角度来看输出数据的。其free = 操作系统used + buffers + cached，既：</span><br /><span style="color: #008000">&nbsp;&nbsp; &nbsp;800904 = 359544 + 88796 + 352564</span><br /><em><span style="color: #0000ff">&nbsp;&nbsp; &nbsp;/&gt; free -m</span></em><br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; total&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; used&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; free&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shared&nbsp;&nbsp;&nbsp; buffers&nbsp;&nbsp;&nbsp;&nbsp; cached<br />&nbsp;&nbsp; &nbsp;Mem:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1007&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 656&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 351&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 86&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 344<br />&nbsp;&nbsp; &nbsp;-/+ buffers/cache:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 225&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 782<br />&nbsp;&nbsp; &nbsp;Swap:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 199&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 199<br /><em><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /&gt; free -k -s 1.5&nbsp;</span></em> #以千字节(KB)为单位显示数据，同时每隔1.5刷新输出一次，直到按CTRL+C退出<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; total&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; used&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; free&nbsp;&nbsp;&nbsp;&nbsp; shared&nbsp;&nbsp;&nbsp; buffers&nbsp;&nbsp;&nbsp;&nbsp; cached<br />&nbsp;&nbsp; &nbsp;Mem:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1007&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 655&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 351&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 86&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 344<br />&nbsp;&nbsp; &nbsp;-/+ buffers/cache:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 224&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 782<br />&nbsp;&nbsp; &nbsp;Swap:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 199&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 199<br /><br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; total&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; used&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; free&nbsp;&nbsp;&nbsp;&nbsp; shared&nbsp;&nbsp;&nbsp; buffers&nbsp;&nbsp;&nbsp;&nbsp; cached<br />&nbsp;&nbsp; &nbsp;Mem:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1007&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 655&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 351&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 86&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 344<br />&nbsp;&nbsp; &nbsp;-/+ buffers/cache:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 224&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 782<br />&nbsp;&nbsp; &nbsp;Swap:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 199&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 199<br /><br /><span style="font-size: 16px"><strong>&nbsp;&nbsp; &nbsp;3.&nbsp; CPU的实时监控工具<span style="color: #ff0000">(mpstat)</span>：</strong></span><br />&nbsp;&nbsp; &nbsp;该命令主要用于报告当前系统中所有CPU的实时运行状况。<br />&nbsp;&nbsp; &nbsp;#该命令将每隔2秒输出一次CPU的当前运行状况信息，一共输出5次，如果没有第二个数字参数，mpstat将每隔两秒执行一次，直到按CTRL+C退出。<br /><span style="color: #0000ff"><em>&nbsp;&nbsp;&nbsp; /&gt; mpstat 2 5 &nbsp;</em></span><br />&nbsp;&nbsp; &nbsp;Linux 2.6.32-71.el6.i686 (Stephen-PC)&nbsp;&nbsp; 11/12/2011&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><span style="color: #ff0000"> _i686_&nbsp; (1 CPU)</span></strong><br /><br />&nbsp;&nbsp; &nbsp;04:03:00 PM&nbsp; CPU&nbsp;&nbsp;&nbsp; %usr&nbsp;&nbsp; %nice&nbsp;&nbsp;&nbsp; %sys %iowait&nbsp;&nbsp;&nbsp; %irq&nbsp;&nbsp; %soft&nbsp; %steal&nbsp; %guest&nbsp;&nbsp; %idle<br />&nbsp;&nbsp; &nbsp;04:03:02 PM&nbsp; all&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.50&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp; 99.50<br />&nbsp;&nbsp; &nbsp;04:03:04 PM&nbsp; all&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp; 100.00<br />&nbsp;&nbsp; &nbsp;04:03:06 PM&nbsp; all&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp; 100.00<br />&nbsp;&nbsp; &nbsp;04:03:08 PM&nbsp; all&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp; 100.00<br />&nbsp;&nbsp; &nbsp;04:03:10 PM&nbsp; all&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp; 100.00<br />&nbsp;&nbsp; &nbsp;Average:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; all&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.10&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp; 99.90<br /><br />&nbsp;&nbsp; &nbsp;第一行的末尾给出了当前系统中CPU的数量。后面的表格中则输出了系统当前CPU的使用状况，以下为每列的含义：</p>
<table style="width: 600px" border="0" align="center">
<tbody>
<tr>
<td style="text-align: center"><strong><span style="color: #0000ff; font-size: 13px">列名</span></strong></td>
<td style="text-align: center"><strong><span style="color: #0000ff; font-size: 13px">说明</span></strong></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">%user</span></td>
<td><span style="color: #0000ff; font-size: 13px">在internal时间段里，用户态的CPU时间(%)，不包含nice值为负进程&nbsp; (usr/total)*100</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">%nice</span></td>
<td><span style="color: #0000ff; font-size: 13px">在internal时间段里，nice值为负进程的CPU时间(%)&nbsp;&nbsp; (nice/total)*100</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">%sys</span></td>
<td><span style="color: #0000ff; font-size: 13px">在internal时间段里，内核时间(%)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (system/total)*100</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">%iowait</span></td>
<td><span style="color: #0000ff; font-size: 13px">在internal时间段里，硬盘IO等待时间(%) (iowait/total)*100</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">%irq</span></td>
<td><span style="color: #0000ff; font-size: 13px">在internal时间段里，硬中断时间(%)&nbsp;&nbsp;&nbsp;&nbsp; (irq/total)*100</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">%soft</span></td>
<td><span style="color: #0000ff; font-size: 13px">在internal时间段里，软中断时间(%)&nbsp;&nbsp;&nbsp;&nbsp; (softirq/total)*100</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">%idle</span></td>
<td><span style="color: #0000ff; font-size: 13px">在internal时间段里，CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100</span></td></tr></tbody></table>
<p><span style="color: #ff0000">&nbsp;&nbsp;&nbsp; 计算公式：</span><br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;total_cur=user+system+nice+idle+iowait+irq+softirq</span><br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;total_pre=pre_user+ pre_system+ pre_nice+ pre_idle+ pre_iowait+ pre_irq+ pre_softirq</span><br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;user=user_cur &#8211; user_pre</span><br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;total=total_cur-total_pre</span><br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;其中_cur 表示当前值，_pre表示interval时间前的值。上表中的所有值可取到两位小数点。&nbsp;&nbsp; &nbsp;</span><br /><br /><span style="color: #0000ff"><em>&nbsp;&nbsp;&nbsp; /&gt; mpstat -P ALL 2 3&nbsp;</em></span> #-P ALL表示打印所有CPU的数据，这里也可以打印指定编号的CPU数据，如-P 0(CPU的编号是0开始的)<br />&nbsp;&nbsp; &nbsp;Linux 2.6.32-71.el6.i686 (Stephen-PC)&nbsp;&nbsp; 11/12/2011&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _i686_&nbsp; (1 CPU)<br /><br />&nbsp;&nbsp; &nbsp;04:12:54 PM&nbsp; CPU&nbsp;&nbsp;&nbsp; %usr&nbsp;&nbsp; %nice&nbsp;&nbsp;&nbsp; %sys %iowait&nbsp;&nbsp;&nbsp; %irq&nbsp;&nbsp; %soft&nbsp; %steal&nbsp; %guest&nbsp;&nbsp; %idle<br />&nbsp;&nbsp; &nbsp;04:12:56 PM&nbsp;&nbsp;&nbsp; all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0.50&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 99.50<br />&nbsp;&nbsp; &nbsp;04:12:56 PM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0.50&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 99.50<br /><br />&nbsp;&nbsp; &nbsp;04:12:56 PM&nbsp; CPU&nbsp;&nbsp;&nbsp; %usr&nbsp;&nbsp; %nice&nbsp;&nbsp;&nbsp; %sys %iowait&nbsp;&nbsp;&nbsp; %irq&nbsp;&nbsp; %soft&nbsp; %steal&nbsp; %guest&nbsp;&nbsp; %idle<br />&nbsp;&nbsp; &nbsp;04:12:58 PM&nbsp;&nbsp;&nbsp; all&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 100.00<br />&nbsp;&nbsp; &nbsp;04:12:58 PM&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 100.00<br /><br />&nbsp;&nbsp; &nbsp;04:12:58 PM&nbsp; CPU&nbsp;&nbsp;&nbsp; %usr&nbsp;&nbsp; %nice&nbsp;&nbsp;&nbsp; %sys %iowait&nbsp;&nbsp;&nbsp; %irq&nbsp;&nbsp; %soft&nbsp; %steal&nbsp; %guest&nbsp;&nbsp; %idle<br />&nbsp;&nbsp; &nbsp;04:13:00 PM&nbsp;&nbsp;&nbsp; all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0.00 &nbsp;&nbsp; &nbsp; 0.00&nbsp;&nbsp;&nbsp; 100.00<br />&nbsp;&nbsp; &nbsp;04:13:00 PM&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp; &nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp; &nbsp; &nbsp; 0.00&nbsp;&nbsp;&nbsp; 100.00<br /><br />&nbsp;&nbsp; &nbsp;Average:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CPU&nbsp;&nbsp;&nbsp; %usr&nbsp;&nbsp; %nice&nbsp;&nbsp;&nbsp; %sys %iowait&nbsp;&nbsp;&nbsp; %irq&nbsp;&nbsp; %soft&nbsp; %steal&nbsp; %guest&nbsp;&nbsp; %idle<br />&nbsp;&nbsp; &nbsp;Average:&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; all&nbsp;&nbsp; &nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.17&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp; &nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp; &nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp; &nbsp;&nbsp; 99.83<br />&nbsp;&nbsp; &nbsp;Average:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.17&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp; &nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp; &nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 99.83<br /><br /><span style="color: #000000; font-size: 16px"><strong><span style="color: #0000ff"><em>&nbsp;&nbsp;&nbsp; </em></span>4.&nbsp; 虚拟内存的实时监控工具<span style="color: #ff0000">(vmstat)</span>：</strong></span><br />&nbsp;&nbsp; &nbsp;vmstat命令用来获得UNIX系统有关进程、虚存、页面交换空间及CPU活动的信息。这些信息反映了系统的负载情况。vmstat首次运行时显示自系统启动开始的各项统计信息，之后运行vmstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。<br /><em><span style="color: #0000ff"><span style="color: #0000ff"><em>&nbsp;&nbsp;&nbsp; </em></span>/&gt; vmstat 1 3&nbsp;&nbsp;&nbsp;</span></em> #这是vmstat最为常用的方式，其含义为每隔1秒输出一条，一共输出3条后程序退出。<br />&nbsp;&nbsp; &nbsp;procs&nbsp; -----------memory----------&nbsp;&nbsp; ---swap-- -----io---- --system-- -----cpu-----<br />&nbsp;&nbsp; &nbsp; r&nbsp; b&nbsp;&nbsp; swpd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; free&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buff&nbsp;&nbsp; cache&nbsp;&nbsp; si&nbsp;&nbsp; so&nbsp;&nbsp;&nbsp;&nbsp; bi&nbsp;&nbsp;&nbsp; bo&nbsp;&nbsp;&nbsp;&nbsp; in&nbsp;&nbsp; cs&nbsp; us&nbsp; sy id&nbsp; wa st<br />&nbsp;&nbsp; &nbsp; 0&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 531760&nbsp; 67284 231212&nbsp; 108&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp; 260&nbsp;&nbsp; 111&nbsp; 148&nbsp; 1&nbsp;&nbsp; 5 86 &nbsp; 8&nbsp; 0<br />&nbsp;&nbsp; &nbsp; 0&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 0 531752&nbsp; 67284 231212&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 33&nbsp;&nbsp; 57&nbsp;&nbsp; 0&nbsp;&nbsp; 1 99&nbsp;&nbsp; 0&nbsp; 0<br />&nbsp;&nbsp; &nbsp; 0&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 531752&nbsp; 67284 231212&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 40&nbsp;&nbsp; 73&nbsp;&nbsp; 0&nbsp;&nbsp; 0 100 0&nbsp; 0<br /><br /><span style="color: #0000ff"><em><span style="color: #0000ff"><em>&nbsp;&nbsp;&nbsp; </em></span>/&gt; vmstat 1&nbsp;&nbsp;&nbsp;</em></span>&nbsp;&nbsp;&nbsp; #其含义为每隔1秒输出一条，直到按CTRL+C后退出。<br /><br />&nbsp;&nbsp; &nbsp;下面将给出输出表格中每一列的含义说明：<br /><span style="color: #ff0000"><span style="color: #0000ff"><em>&nbsp;&nbsp;&nbsp; </em></span>有关进程的信息有：(procs)</span><br />&nbsp;&nbsp; &nbsp;r:&nbsp; 在就绪状态等待的进程数。<br />&nbsp;&nbsp; &nbsp;b: 在等待状态等待的进程数。&nbsp;&nbsp;&nbsp; <br /><span style="color: #ff0000"><span style="color: #0000ff"><em>&nbsp;&nbsp;&nbsp; </em></span>有关内存的信息有：(memory)</span><br />&nbsp;&nbsp; &nbsp;swpd:&nbsp; 正在使用的swap大小，单位为KB。<br />&nbsp;&nbsp; &nbsp;free:&nbsp;&nbsp;&nbsp; 空闲的内存空间。<br />&nbsp;&nbsp; &nbsp;buff:&nbsp;&nbsp;&nbsp; 已使用的buff大小，对块设备的读写进行缓冲。<br />&nbsp;&nbsp; &nbsp;cache: 已使用的cache大小，文件系统的cache。<br /><span style="color: #ff0000"><span style="color: #0000ff"><em>&nbsp;&nbsp;&nbsp; </em></span>有关页面交换空间的信息有：(swap)</span><br />&nbsp;&nbsp; &nbsp;si:&nbsp; 交换内存使用，由磁盘调入内存。<br />&nbsp;&nbsp; &nbsp;so: 交换内存使用，由内存调入磁盘。&nbsp; <br /><span style="color: #ff0000"><span style="color: #0000ff"><em>&nbsp;&nbsp;&nbsp; </em></span>有关IO块设备的信息有：(io)</span><br />&nbsp;&nbsp; &nbsp;bi:&nbsp; 从块设备读入的数据总量(读磁盘) (KB/s)<br />&nbsp;&nbsp; &nbsp;bo: 写入到块设备的数据总理(写磁盘) (KB/s)&nbsp;&nbsp; <br /><span style="color: #ff0000"><span style="color: #0000ff"><em>&nbsp;&nbsp;&nbsp; </em></span>有关故障的信息有：(system)</span><br />&nbsp;&nbsp; &nbsp;in: 在指定时间内的每秒中断次数。<br />&nbsp;&nbsp; &nbsp;sy: 在指定时间内每秒系统调用次数。<br />&nbsp;&nbsp; &nbsp;cs: 在指定时间内每秒上下文切换的次数。&nbsp;&nbsp; <br /><span style="color: #ff0000"><span style="color: #0000ff"><em>&nbsp;&nbsp;&nbsp; </em></span>有关CPU的信息有：(cpu)</span><br />&nbsp;&nbsp; &nbsp;us:&nbsp; 在指定时间间隔内CPU在用户态的利用率。<br />&nbsp;&nbsp; &nbsp;sy:&nbsp; 在指定时间间隔内CPU在核心态的利用率。<br />&nbsp;&nbsp; &nbsp;id:&nbsp; 在指定时间间隔内CPU空闲时间比。<br />&nbsp;&nbsp; &nbsp;wa: 在指定时间间隔内CPU因为等待I/O而空闲的时间比。&nbsp;&nbsp; <br /><span style="color: #ff0000"><span style="color: #0000ff"><em>&nbsp;&nbsp;&nbsp; </em></span>vmstat 可以用来确定一个系统的工作是受限于CPU还是受限于内存：如果CPU的sy和us值相加的百分比接近100%，或者运行队列(r)中等待的进程数总是不等于0，且经常大于4，同时id也经常小于40，则该系统受限于CPU；如果bi、bo的值总是不等于0，则该系统受限于内存。</span><br /><br /><span style="font-size: 16px"><strong><em><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; </span></em>5.&nbsp; 设备IO负载的实时监控工具<span style="color: #ff0000">(iostat)</span>：</strong></span><br />&nbsp;&nbsp;&nbsp; iostat主要用于监控系统设备的IO负载情况，iostat首次运行时显示自系统启动开始的各项统计信息，之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。<br /><em><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; </span></em>其中该命令中最为常用的使用方式如下：<br /><em><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /&gt; iostat -d 1 3&nbsp;&nbsp;&nbsp;</span></em> #仅显示设备的IO负载，其中每隔1秒刷新并输出结果一次，输出3次后iostat退出。<br />&nbsp;&nbsp; &nbsp;Linux 2.6.32-71.el6.i686 (Stephen-PC)&nbsp;&nbsp; 11/16/2011&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _i686_&nbsp; (1 CPU)<br /><br />&nbsp;&nbsp; &nbsp;Device:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tps&nbsp;&nbsp; Blk_read/s&nbsp;&nbsp; Blk_wrtn/s&nbsp;&nbsp; Blk_read&nbsp;&nbsp; Blk_wrtn<br />&nbsp;&nbsp; &nbsp;sda&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 258.39&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 26.19&nbsp;&nbsp;&nbsp;&nbsp; 538210&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 54560<br /><br />&nbsp;&nbsp; &nbsp;Device:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tps&nbsp;&nbsp; Blk_read/s&nbsp;&nbsp; Blk_wrtn/s&nbsp;&nbsp; Blk_read&nbsp;&nbsp; Blk_wrtn<br />&nbsp;&nbsp; &nbsp;sda&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br /><br />&nbsp;&nbsp; &nbsp;Device:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tps&nbsp;&nbsp; Blk_read/s&nbsp;&nbsp; Blk_wrtn/s&nbsp;&nbsp; Blk_read&nbsp;&nbsp; Blk_wrtn<br />&nbsp;&nbsp; &nbsp;sda&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br /><br />&nbsp;&nbsp; &nbsp;Device:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tps&nbsp;&nbsp; Blk_read/s&nbsp;&nbsp; Blk_wrtn/s&nbsp;&nbsp; Blk_read&nbsp;&nbsp; Blk_wrtn<br />&nbsp;&nbsp; &nbsp;sda&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br /><em><span style="color: #0000ff"><em><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; </span></em>/&gt; iostat -d 1&nbsp;</span></em> #和上面的命令一样，也是每隔1秒刷新并输出一次，但是该命令将一直输出，直到按CTRL+C退出。<br />&nbsp;&nbsp; &nbsp;下面将给出输出表格中每列的含义：</p>
<table style="width: 450px" border="0" align="center">
<tbody>
<tr>
<td style="text-align: center"><strong><span style="color: #0000ff; font-size: 13px">列名</span></strong></td>
<td style="text-align: center"><strong><span style="color: #0000ff; font-size: 13px">说明</span></strong></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">Blk_read/s</span></td>
<td><span style="color: #0000ff; font-size: 13px">每秒块(扇区)读取的数量。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">Blk_wrtn/s</span></td>
<td><span style="color: #0000ff; font-size: 13px">每秒块(扇区)写入的数量。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">Blk_read</span></td>
<td><span style="color: #0000ff; font-size: 13px">总共块(扇区)读取的数量。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">Blk_wrtn</span></td>
<td><span style="color: #0000ff; font-size: 13px">总共块(扇区)写入的数量。</span></td></tr></tbody></table>
<p>&nbsp;&nbsp;&nbsp; iostat还有一个比较常用的选项<strong><span style="color: #ff0000">-x</span></strong>，该选项将用于显示和io相关的扩展数据。<br /><em><span style="color: #0000ff"><em><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; </span></em>/&gt; iostat -dx 1 3</span></em><br />&nbsp;&nbsp; &nbsp;Device:&nbsp; rrqm/s wrqm/s&nbsp; r/s&nbsp;&nbsp; w/s&nbsp; rsec/s wsec/s avgrq-sz avgqu-sz&nbsp;&nbsp; await&nbsp; svctm&nbsp; %util<br />&nbsp;&nbsp; &nbsp;sda&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.27&nbsp;&nbsp; 1.31 2.82 1.14 189.49&nbsp; 19.50&nbsp;&nbsp;&nbsp; 52.75&nbsp;&nbsp;&nbsp;&nbsp; 0.53&nbsp;&nbsp;&nbsp;&nbsp; 133.04&nbsp; 10.74&nbsp;&nbsp; 4.26<br /><br />&nbsp;&nbsp; &nbsp;Device:&nbsp; rrqm/s wrqm/s&nbsp; r/s&nbsp;&nbsp; w/s&nbsp; rsec/s wsec/s avgrq-sz avgqu-sz&nbsp;&nbsp; await&nbsp; svctm&nbsp; %util<br />&nbsp;&nbsp; &nbsp;sda&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp; 0.00 0.00 0.00&nbsp;&nbsp; 0.00&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp; 0.00&nbsp;&nbsp; 0.00<br /><br />&nbsp;&nbsp; &nbsp;Device:&nbsp; rrqm/s wrqm/s&nbsp; r/s&nbsp;&nbsp; w/s&nbsp; rsec/s wsec/s avgrq-sz avgqu-sz&nbsp;&nbsp; await&nbsp; svctm&nbsp; %util<br />&nbsp;&nbsp; &nbsp;sda&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; 0.00&nbsp;&nbsp; 0.00 0.00 0.00&nbsp;&nbsp; 0.00&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp; 0.00&nbsp;&nbsp; 0.00<br />&nbsp;&nbsp;&nbsp; 还可以在命令行参数中指定要监控的设备名，如：<br /><em><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /&gt; iostat -dx sda 1 3&nbsp;&nbsp;</span></em> #指定监控的设备名称为sda，该命令的输出结果和上面命令完全相同。<br /><br />&nbsp;&nbsp; &nbsp;下面给出扩展选项输出的表格中每列的含义：</p>
<table style="width: 450px" border="0" align="center">
<tbody>
<tr>
<td style="text-align: center"><strong><span style="color: #0000ff; font-size: 13px">列名</span></strong></td>
<td style="text-align: center"><strong><span style="color: #0000ff; font-size: 13px">说明</span></strong></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">rrqm/s</span></td>
<td><span style="color: #0000ff; font-size: 13px">队列中每秒钟合并的读请求数量</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">wrqm/s</span></td>
<td><span style="color: #0000ff; font-size: 13px">队列中每秒钟合并的写请求数量</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">r/s</span></td>
<td><span style="color: #0000ff; font-size: 13px">每秒钟完成的读请求数量</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">w/s</span></td>
<td><span style="color: #0000ff; font-size: 13px">每秒钟完成的写请求数量</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">rsec/s</span></td>
<td><span style="color: #0000ff; font-size: 13px">每秒钟读取的扇区数量</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">wsec/s</span></td>
<td><span style="color: #0000ff; font-size: 13px">每秒钟写入的扇区数量</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">avgrq-sz</span></td>
<td><span style="color: #0000ff; font-size: 13px">平均请求扇区的大小</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">avgqu-sz</span></td>
<td><span style="color: #0000ff; font-size: 13px">平均请求队列的长度</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">await</span></td>
<td><span style="color: #0000ff; font-size: 13px">平均每次请求的等待时间</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">util</span></td>
<td><span style="color: #0000ff; font-size: 13px">设备的利用率</span></td></tr></tbody></table>
<p>&nbsp;&nbsp;&nbsp; 下面是关键列的解释：<br /><span style="color: #000000"><strong><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;util</span></strong><span style="color: #ff0000">是设备的利用率。如果它接近100%，通常说明设备能力趋于饱和。</span></span><br /><span style="color: #000000"><strong><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;await</span></strong><span style="color: #ff0000">是平均每次请求的等待时间。这个时间包括了队列时间和服务时间，也就是说，一般情况下，await大于svctm，它们的差值越小，则说明队列时间越短，反之差值越大，队列时间越长，说明系统出了问题。</span></span><br /><span style="color: #000000"><strong><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;avgqu-sz</span></strong><span style="color: #ff0000">是平均请求队列的长度。毫无疑问，队列长度越短越好。&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</span></span><br /><br /><strong><span style="font-size: 16px">&nbsp;&nbsp;&nbsp;&nbsp; 6.&nbsp; 当前运行进程的实时监控工具<span style="color: #ff0000">(pidstat)</span>：</span></strong><br />&nbsp;&nbsp;&nbsp; &nbsp;pidstat主要用于监控全部或指定进程占用系统资源的情况，如CPU，内存、设备IO、任务切换、线程等。pidstat首次运行时显示自系统启动开始的各项统计信息，之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。<br />&nbsp;&nbsp; &nbsp;在正常的使用，通常都是通过在命令行选项中指定待监控的pid，之后在通过其他具体的参数来监控与该pid相关系统资源信息。</p>
<table style="width: 650px" border="0" align="center">
<tbody>
<tr>
<td style="text-align: center"><strong><span style="color: #0000ff; font-size: 13px">选项</span></strong></td>
<td style="text-align: center"><strong><span style="color: #0000ff; font-size: 13px">说明</span></strong></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-l</span></td>
<td><span style="color: #0000ff; font-size: 13px">显示该进程和CPU相关的信息(command列中可以显示命令的完整路径名和命令的参数)。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-d</span></td>
<td><span style="color: #0000ff; font-size: 13px">显示该进程和设备IO相关的信息。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-r</span></td>
<td><span style="color: #0000ff; font-size: 13px">显示该进程和内存相关的信息。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-w</span></td>
<td><span style="color: #0000ff; font-size: 13px">显示该进程和任务时间片切换相关的信息。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-t</span></td>
<td><span style="color: #0000ff; font-size: 13px">显示在该进程内正在运行的线程相关的信息。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-p</span></td>
<td><span style="color: #0000ff; font-size: 13px">后面紧跟着带监控的进程id或ALL(表示所有进程)，如不指定该选项，将监控当前系统正在运行的所有进程。</span></td></tr></tbody></table>
<p>&nbsp;&nbsp;&nbsp; #监控pid为1(init)的进程的CPU资源使用情况，其中每隔3秒刷新并输出一次，3次后程序退出。<br /><span style="color: #0000ff"><em>&nbsp;&nbsp;&nbsp; </em><em>/&gt; pidstat -p 1 2 3 -l</em></span><br />&nbsp;&nbsp; &nbsp;07:18:58 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID&nbsp;&nbsp;&nbsp; %usr %system&nbsp; %guest&nbsp;&nbsp;&nbsp; %CPU&nbsp;&nbsp; CPU&nbsp; Command<br />&nbsp;&nbsp; &nbsp;07:18:59 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp; /sbin/init<br />&nbsp;&nbsp; &nbsp;07:19:00 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp; /sbin/init<br />&nbsp;&nbsp; &nbsp;07:19:01 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp; /sbin/init<br />&nbsp;&nbsp; &nbsp;Average:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp; /sbin/init<br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;%usr：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该进程在用户态的CPU使用率。</span><br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;%system：该进程在内核态(系统级)的CPU使用率。</span><br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;%CPU：&nbsp;&nbsp;&nbsp;&nbsp; 该进程的总CPU使用率，如果在SMP环境下，该值将除以CPU的数量，以表示每CPU的数据。</span><br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;CPU:&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; 该进程所依附的CPU编号(0表示第一个CPU)。</span><br /><br />&nbsp;&nbsp; &nbsp;#监控pid为1(init)的进程的设备IO资源负载情况，其中每隔2秒刷新并输出一次，3次后程序退出。<br />&nbsp;&nbsp; &nbsp;/<em><span style="color: #0000ff">&gt; pidstat -p 1 2 3 -d&nbsp;&nbsp; &nbsp;</span></em><br />&nbsp;&nbsp; &nbsp;07:24:49 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID&nbsp;&nbsp; kB_rd/s&nbsp;&nbsp; kB_wr/s kB_ccwr/s&nbsp; Command<br />&nbsp;&nbsp; &nbsp;07:24:51 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp; init<br />&nbsp;&nbsp; &nbsp;07:24:53 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp; init<br />&nbsp;&nbsp; &nbsp;07:24:55 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp; init<br />&nbsp;&nbsp; &nbsp;Average:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp; init<br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;kB_rd/s:&nbsp;&nbsp; 该进程每秒的字节读取数量(KB)。</span><br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;kB_wr/s:&nbsp;&nbsp; 该进程每秒的字节写出数量(KB)。</span><br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;kB_ccwr/s: 该进程每秒取消磁盘写入的数量(KB)。</span><br /><br />&nbsp;&nbsp; &nbsp;#监控pid为1(init)的进程的内存使用情况，其中每隔2秒刷新并输出一次，3次后程序退出。<br /><em><span style="color: #0000ff">&nbsp;&nbsp; &nbsp;/&gt; pidstat -p 1 2 3 -r</span></em><br />&nbsp;&nbsp; &nbsp;07:29:56 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID&nbsp; minflt/s&nbsp; majflt/s&nbsp;&nbsp;&nbsp;&nbsp; VSZ&nbsp;&nbsp;&nbsp; RSS&nbsp;&nbsp; %MEM&nbsp; Command<br />&nbsp;&nbsp; &nbsp;07:29:58 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 2828&nbsp;&nbsp; 1368&nbsp;&nbsp; 0.13&nbsp; init<br />&nbsp;&nbsp; &nbsp;07:30:00 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 2828&nbsp;&nbsp; 1368&nbsp;&nbsp; 0.13&nbsp; init<br />&nbsp;&nbsp; &nbsp;07:30:02 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 2828&nbsp;&nbsp; 1368&nbsp;&nbsp; 0.13&nbsp; init<br />&nbsp;&nbsp; &nbsp;Average:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp; 2828&nbsp;&nbsp; 1368&nbsp;&nbsp; 0.13&nbsp; init<br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;%MEM:&nbsp; 该进程的内存使用百分比。</span><br /><br />&nbsp;&nbsp; &nbsp;#监控pid为1(init)的进程任务切换情况，其中每隔2秒刷新并输出一次，3次后程序退出。<br /><em><span style="color: #0000ff">&nbsp;&nbsp; &nbsp;/&gt; pidstat -p 1 2 3 -w</span></em><br />&nbsp;&nbsp; &nbsp;07:32:15 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID&nbsp;&nbsp; cswch/s nvcswch/s&nbsp; Command<br />&nbsp;&nbsp; &nbsp;07:32:17 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp; init<br />&nbsp;&nbsp; &nbsp;07:32:19 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp; init<br />&nbsp;&nbsp; &nbsp;07:32:21 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp; init<br />&nbsp;&nbsp; &nbsp;Average:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp; init<br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;cswch/s:&nbsp;&nbsp;&nbsp; 每秒任务主动(自愿的)切换上下文的次数。主动切换是指当某一任务处于阻塞等待时，将主动让出自己的CPU资源。</span><br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;nvcswch/s: 每秒任务被动(不自愿的)切换上下文的次数。被动切换是指CPU分配给某一任务的时间片已经用完，因此将强迫该进程让出CPU的执行权。</span><br /><br />&nbsp;&nbsp; &nbsp;#监控pid为1(init)的进程及其内部线程的内存(<strong><span style="color: #ff0000">r选项</span></strong>)使用情况，其中每隔2秒刷新并输出一次，3次后程序退出。需要说明的是，如果-t选项后面不加任何其他选项，缺省监控的为CPU资源。结果中黄色高亮的部分表示进程和其内部线程是树状结构的显示方式。<br /><em><span style="color: #0000ff">&nbsp;&nbsp; &nbsp;/&gt; pidstat -p 1 2 3 -tr</span></em><br />&nbsp;&nbsp; &nbsp;Linux 2.6.32-71.el6.i686 (Stephen-PC)&nbsp;&nbsp; 11/16/2011&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _i686_&nbsp; (1 CPU)<br /><br />&nbsp;&nbsp; &nbsp;07:37:04 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TGID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TID&nbsp; minflt/s&nbsp; majflt/s&nbsp;&nbsp;&nbsp;&nbsp; VSZ&nbsp;&nbsp;&nbsp; RSS&nbsp;&nbsp; %MEM&nbsp; Command<br />&nbsp;&nbsp; &nbsp;07:37:06 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2828&nbsp;&nbsp; 1368&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.13&nbsp; <span style="background-color: #ffff00">init</span><br />&nbsp;&nbsp; &nbsp;07:37:06 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2828&nbsp;&nbsp; 1368&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.13&nbsp; <span style="background-color: #ffff00">|__init</span><br /><br />&nbsp;&nbsp; &nbsp;07:37:06 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TGID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TID&nbsp; minflt/s&nbsp; majflt/s&nbsp;&nbsp;&nbsp;&nbsp; VSZ&nbsp;&nbsp;&nbsp; RSS&nbsp;&nbsp; %MEM&nbsp; Command<br />&nbsp;&nbsp; &nbsp;07:37:08 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2828&nbsp;&nbsp; 1368&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.13&nbsp; <span style="background-color: #ffff00">init</span><br />&nbsp;&nbsp; &nbsp;07:37:08 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2828&nbsp;&nbsp; 1368&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.13&nbsp; <span style="background-color: #ffff00">|__init</span><br /><br />&nbsp;&nbsp; &nbsp;07:37:08 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TGID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TID&nbsp; minflt/s&nbsp; majflt/s&nbsp;&nbsp;&nbsp;&nbsp; VSZ&nbsp;&nbsp;&nbsp; RSS&nbsp;&nbsp; %MEM&nbsp; Command<br />&nbsp;&nbsp; &nbsp;07:37:10 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2828&nbsp;&nbsp; 1368&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.13&nbsp; <span style="background-color: #ffff00">init</span><br />&nbsp;&nbsp; &nbsp;07:37:10 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2828&nbsp;&nbsp; 1368&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.13&nbsp; <span style="background-color: #ffff00">|__init</span><br /><br />&nbsp;&nbsp; &nbsp;Average:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TGID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TID&nbsp; minflt/s&nbsp; majflt/s&nbsp;&nbsp;&nbsp;&nbsp; VSZ&nbsp;&nbsp;&nbsp; RSS&nbsp;&nbsp; %MEM&nbsp; Command<br />&nbsp;&nbsp; &nbsp;Average:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2828&nbsp;&nbsp; 1368&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.13&nbsp; <span style="background-color: #ffff00">init</span><br />&nbsp;&nbsp; &nbsp;Average:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2828&nbsp;&nbsp; 1368&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.13&nbsp; <span style="background-color: #ffff00">|__init</span><br /><span style="color: #ff0000">&nbsp;&nbsp;&nbsp; TGID: 线程组ID。</span><br /><span style="color: #ff0000">&nbsp;&nbsp; &nbsp;TID： 线程ID。&nbsp;&nbsp;</span></p>
<p>&nbsp;&nbsp;&nbsp;<strong><span style="color: #ff0000"> 以上监控不同资源的选项可以同时存在，这样就将在一次输出中输出多种资源的使用情况，如：pidstat -p 1 -dr。</span></strong><br /><br /><span style="font-size: 16px"><strong>&nbsp;&nbsp; &nbsp;7.&nbsp; 报告磁盘空间使用状况<span style="color: #ff0000">(df)</span>:</strong></span><br />&nbsp;&nbsp; &nbsp;该命令最为常用的选项就是<strong><span style="color: #ff0000">-h</span></strong>，该选项将智能的输出数据单位，以便使输出的结果更具可读性。<br />&nbsp;&nbsp;<span style="color: #0000ff"><em> &nbsp;/&gt; df -h</em></span><br />&nbsp;&nbsp; &nbsp;Filesystem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Size&nbsp; Used&nbsp;&nbsp; Avail Use% Mounted on<br />&nbsp;&nbsp; &nbsp;/dev/sda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.8G&nbsp; 3.3G&nbsp; 2.2G&nbsp; 61%&nbsp;&nbsp; /<br />&nbsp;&nbsp; &nbsp;tmpfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 504M&nbsp; 260K&nbsp; 504M&nbsp;&nbsp; 1%&nbsp; /dev/shm<br /><br />&nbsp;&nbsp; &nbsp;<span style="font-size: 16px"><strong>8.&nbsp; 评估磁盘的使用状况<span style="color: #ff0000">(du)</span>：</strong></span></p>
<table style="width: 650px" border="0" align="center">
<tbody>
<tr>
<td style="text-align: center"><strong><span style="color: #0000ff; font-size: 13px">选项</span></strong></td>
<td style="text-align: center"><strong><span style="color: #0000ff; font-size: 13px">说明</span></strong></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-a</span></td>
<td><span style="color: #0000ff; font-size: 13px">包括了所有的文件，而不只是目录。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-b</span></td>
<td><span style="color: #0000ff; font-size: 13px">以字节为计算单位。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-k</span></td>
<td><span style="color: #0000ff; font-size: 13px">以千字节(KB)为计算单位。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-m</span></td>
<td><span style="color: #0000ff; font-size: 13px">以兆字节(MB)为计算单位。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-h</span></td>
<td><span style="color: #0000ff; font-size: 13px">是输出的信息更易于阅读。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">-s</span></td>
<td><span style="color: #0000ff; font-size: 13px">只显示工作目录所占总空间。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">--exclude=PATTERN</span></td>
<td><span style="color: #0000ff; font-size: 13px">排除掉符合样式的文件,Pattern就是普通的Shell样式，？表示任何一个字符，*表示任意多个字符。</span></td></tr>
<tr>
<td><span style="color: #0000ff; font-size: 13px">--max-depth=N</span></td>
<td><span style="color: #0000ff; font-size: 13px">从当前目录算起，目录深度大于N的子目录将不被计算，该选项不能和s选项同时存在。 </span><br /><br /></td></tr></tbody></table>
<p>&nbsp;&nbsp;&nbsp; #仅显示子一级目录的信息。<br />&nbsp;&nbsp;&nbsp;<em><span style="color: #0000ff"> /&gt; du --max-depth=1 -h</span></em><br />&nbsp;&nbsp; &nbsp;246M&nbsp;&nbsp;&nbsp; ./stephen<br />&nbsp;&nbsp; &nbsp;246M&nbsp;&nbsp;&nbsp; .&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;<em><span style="color: #0000ff"> /&gt; du -sh ./*</span></em>&nbsp;&nbsp; #获取当前目录下所有子目录所占用的磁盘空间大小。<br />&nbsp;&nbsp; &nbsp;352K&nbsp;&nbsp;&nbsp; ./MemcachedTest<br />&nbsp;&nbsp; &nbsp;132K&nbsp;&nbsp;&nbsp; ./Test<br />&nbsp;&nbsp; &nbsp;33M&nbsp;&nbsp;&nbsp;&nbsp; ./thirdparty&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; &nbsp;#在当前目录下，排除目录名模式为Te*的子目录(./Test)，输出其他子目录占用的磁盘空间大小。<br />&nbsp;&nbsp; <em><span style="color: #0000ff">&nbsp;/&gt; du --exclude=Te* -sh ./* &nbsp;</span></em><br />&nbsp;&nbsp; &nbsp;352K&nbsp;&nbsp;&nbsp; ./MemcachedTest<br />&nbsp;&nbsp; &nbsp;33M&nbsp;&nbsp;&nbsp;&nbsp; ./thirdparty<br /><br /><br /><br /><a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/05/2257887.html">http://www.cnblogs.com/stephen-liu74/archive/2011/12/05/2257887.html</a></p></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/396064.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2013-03-05 12:12 <a href="http://www.blogjava.net/stevenjohn/archive/2013/03/05/396064.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux系统中查看日志的常用命令 </title><link>http://www.blogjava.net/stevenjohn/archive/2013/02/11/395294.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Mon, 11 Feb 2013 05:40:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2013/02/11/395294.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/395294.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2013/02/11/395294.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/395294.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/395294.html</trackback:ping><description><![CDATA[<div style="font-size: 14px" class="iteye-blog-content-contain">
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">因为在日常的工作中，出问题的时候查看日志是每个管理员的习惯，作为初学者，为了以后的需要，我今天将下面这些查看命令共享给各位</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">cat</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">tail -f</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">日 志 文 件 说 明</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">/var/log/message 系统启动后的信息和错误日志，是Red Hat Linux中最常用的日志之一</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">/var/log/secure 与安全相关的日志信息</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">/var/log/maillog 与邮件相关的日志信息</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">/var/log/cron 与定时任务相关的日志信息</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">/var/log/spooler 与UUCP和news设备相关的日志信息</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">/var/log/boot.log 守护进程启动和停止相关的日志消息</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">系统：</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># uname -a # 查看内核/操作系统/CPU信息</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># cat /etc/issue</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># cat /etc/redhat-release # 查看操作系统版本</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># cat /proc/cpuinfo # 查看CPU信息</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># hostname # 查看计算机名</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># lspci -tv # 列出所有PCI设备</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># lsusb -tv # 列出所有USB设备</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># lsmod # 列出加载的内核模块</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># env # 查看环境变量</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">资源：</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># free -m # 查看内存使用量和交换区使用量</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># df -h # 查看各分区使用情况</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># du -sh &lt;目录名&gt; # 查看指定目录的大小</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># grep MemTotal /proc/meminfo # 查看内存总量</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># grep MemFree /proc/meminfo # 查看空闲内存量</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># uptime # 查看系统运行时间、用户数、负载</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># cat /proc/loadavg # 查看系统负载</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">磁盘和分区：</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># mount | column -t # 查看挂接的分区状态</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># fdisk -l # 查看所有分区</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># swapon -s # 查看所有交换分区</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># dmesg | grep IDE # 查看启动时IDE设备检测状况</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">网络：</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># ifconfig # 查看所有网络接口的属性</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># iptables -L # 查看防火墙设置</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># route -n # 查看路由表</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># netstat -lntp # 查看所有监听端口</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># netstat -antp # 查看所有已经建立的连接</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># netstat -s # 查看网络统计信息</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">进程：</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># ps -ef # 查看所有进程</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># top # 实时显示进程状态(另一篇文章里面有详细的介绍)</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">用户：</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># w # 查看活动用户</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># id &lt;用户名&gt; # 查看指定用户信息</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># last # 查看用户登录日志</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># cut -d: -f1 /etc/passwd # 查看系统所有用户</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># cut -d: -f1 /etc/group # 查看系统所有组</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># crontab -l # 查看当前用户的计划任务</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">服务：</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># chkconfig &#8211;list # 列出所有系统服务</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># chkconfig &#8211;list | grep on # 列出所有启动的系统服务</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555">程序：</p>
<p style="padding-bottom: 15px; line-height: 28px; font-family: 宋体, 'Arial Narrow', arial, serif; color: #555555"># rpm -qa # 查看所有安装的软件包</p></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/395294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2013-02-11 13:40 <a href="http://www.blogjava.net/stevenjohn/archive/2013/02/11/395294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sed、tr、sort、uniq、join、cut、split命令</title><link>http://www.blogjava.net/stevenjohn/archive/2013/01/08/393943.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Tue, 08 Jan 2013 04:37:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2013/01/08/393943.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/393943.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2013/01/08/393943.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/393943.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/393943.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1、sed使用手册（转载）&nbsp; sed使用手册（转载）&nbsp;发信站: BBS 水木清华站 (Wed Sep 25 21:06:36 2002), 站内信件&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sed 命令列可分成编辑指令与文件档部份。其中 , 编辑指令负责控制所有的编&nbsp;辑工作 ; 文件档表示所处理的档案。&nbsp;&nbsp;&nbsp; ...&nbsp;&nbsp;<a href='http://www.blogjava.net/stevenjohn/archive/2013/01/08/393943.html'>阅读全文</a><img src ="http://www.blogjava.net/stevenjohn/aggbug/393943.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2013-01-08 12:37 <a href="http://www.blogjava.net/stevenjohn/archive/2013/01/08/393943.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sed命令详解 </title><link>http://www.blogjava.net/stevenjohn/archive/2012/12/14/393010.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Fri, 14 Dec 2012 09:11:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/12/14/393010.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/393010.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/12/14/393010.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/393010.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/393010.html</trackback:ping><description><![CDATA[<div><span style="font-size: 12pt"><strong>&nbsp;</strong></span></div>
<div><span style="font-size: 12pt"><strong>1.简介</strong></span></div>
<div>sed是非交互式的编辑器。它不会修改文件，除非使用shell重定向来保存结果。默认情况下，所有的输出行都被打印到屏幕上。</div>
<div>sed编辑器逐行处理文件（或输入），并将结果发送到屏幕。具体过程如下：首先sed把当前正在处理的行保存在一个临时缓存区中（也称为模式空间），然后处理临时缓冲区中的行，完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除，然后将下一行读入，进行处理和显示。处理完输入文件的最后一行后，sed便结束运行。sed把每一行都存在临时缓冲区中，对这个副本进行编辑，所以不会修改原文件。</div>
<div>&nbsp;</div>
<div></div>
<div></div>
<div></div>
<div></div>
<div><span style="font-size: 12pt"><strong>2.定址</strong></span></div>
<div>定址用于决定对哪些行进行编辑。地址的形式可以是数字、正则表达式、或二者的结合。如果没有指定地址，sed将处理输入文件的所有行。</div>
<div>&nbsp;</div>
<div>地址是一个数字，则表示行号；是&#8220;$"符号，则表示最后一行。例如：&nbsp;</div>
<div></div>
<div></div>
<div>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed <span style="color: #0000cc">-</span>n <span style="color: #ff00ff">'3p'</span> datafile<br />只打印第三行</span></code></span></p></td></tr></tbody></table></div>
<p>&nbsp;</p>
<p>&nbsp;只显示指定行范围的文件内容，例如：</p>
<div class="cnblogs_code">
<div>#&nbsp;只查看文件的第100行到第200行<br />sed&nbsp;-n&nbsp;'100,200p'&nbsp;mysql_slow_query.log</div></div>
<p>&nbsp;</p>
<p>地址是逗号分隔的，那么需要处理的地址是这两行之间的范围（包括这两行在内）。范围可以用数字、正则表达式、或二者的组合表示。例如：</p>
<div>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed <span style="color: #ff00ff">'2,5d'</span> datafile<br />#删除第二到第五行<br />sed <span style="color: #ff00ff">'/My/,/You/d'</span> datafile<br />#删除包含<span style="color: #ff00ff">"My"<span style="color: #000000">的</span></span>行到包含<span style="color: #ff00ff">"You"<span style="color: #000000">的</span></span>行之间的行<br />sed <span style="color: #ff00ff">'/My/,10d'</span> datafile<br />#删除包含<span style="color: #ff00ff">"My"<span style="color: #000000">的</span></span>行到第十行的内容</span></code></span></p></td></tr></tbody></table></div>
<div></div>
<p><span style="font-size: 12pt"><strong>&nbsp;</strong></span></p>
<p><span style="font-size: 12pt"><strong>&nbsp;</strong></span></p>
<p><span style="font-size: 12pt"><strong>3.命令与选项</strong></span></p>
<p>sed命令告诉sed如何处理由地址指定的各输入行，如果没有指定地址则处理所有的输入行。</p>
<p>&nbsp;</p>
<p><strong>3.1 sed命令</strong></p>
<div>
<table border="1" cellspacing="1" cellpadding="1" width="500">
<tbody>
<tr>
<td>&nbsp;<span style="font-size: 10pt">命令</span></td>
<td><span style="font-size: 10pt">&nbsp;功能</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;a\</span></td>
<td>
<p><span style="font-size: 10pt">&nbsp;在当前行后添加一行或多行。多行时除最后一行外，每行末尾需用&#8220;\&#8221;续行</span></p></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;c\</span></td>
<td><span style="font-size: 10pt">&nbsp;用此符号后的新文本替换当前行中的文本。多行时除最后一行外，每行末尾需用"\"续行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;i\</span></td>
<td><span style="font-size: 10pt">&nbsp;在当前行之前插入文本。多行时除最后一行外，每行末尾需用"\"续行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;d</span></td>
<td><span style="font-size: 10pt">&nbsp;删除行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;h</span></td>
<td><span style="font-size: 10pt">&nbsp;把模式空间里的内容复制到暂存缓冲区</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;H</span></td>
<td><span style="font-size: 10pt">&nbsp;把模式空间里的内容追加到暂存缓冲区</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;g</span></td>
<td><span style="font-size: 10pt">&nbsp;把暂存缓冲区里的内容复制到模式空间，覆盖原有的内容</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;G</span></td>
<td><span style="font-size: 10pt">&nbsp;把暂存缓冲区的内容追加到模式空间里，追加在原有内容的后面</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;l</span></td>
<td><span style="font-size: 10pt">&nbsp;列出非打印字符</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;p</span></td>
<td><span style="font-size: 10pt">&nbsp;打印行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;n</span></td>
<td><span style="font-size: 10pt">&nbsp;读入下一输入行，并从下一条命令而不是第一条命令开始对其的处理</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;q</span></td>
<td><span style="font-size: 10pt">&nbsp;结束或退出sed</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;r</span></td>
<td><span style="font-size: 10pt">&nbsp;从文件中读取输入行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;!</span></td>
<td><span style="font-size: 10pt">&nbsp;对所选行以外的所有行应用命令</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;s</span></td>
<td><span style="font-size: 10pt">&nbsp;用一个字符串替换另一个</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;g</span></td>
<td><span style="font-size: 10pt">&nbsp;在行内进行全局替换</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;</span></td>
<td></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;w</span></td>
<td><span style="font-size: 10pt">&nbsp;将所选的行写入文件</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;x</span></td>
<td><span style="font-size: 10pt">&nbsp;交换暂存缓冲区与模式空间的内容</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;y</span></td>
<td><span style="font-size: 10pt">&nbsp;将字符替换为另一字符（不能对正则表达式使用y命令）</span></td></tr></tbody></table></div>
<p><strong>&nbsp;</strong></p>
<p><strong>3.2 sed选项</strong></p>
<div>
<table border="1" cellspacing="1" cellpadding="1" width="500">
<tbody>
<tr>
<td><span style="font-size: 10pt">&nbsp;选项</span></td>
<td><span style="font-size: 10pt">&nbsp;功能</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;-e</span></td>
<td><span style="font-size: 10pt">&nbsp;进行多项编辑，即对输入行应用多条sed命令时使用</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;-n</span></td>
<td><span style="font-size: 10pt">&nbsp;取消默认的输出</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;-f</span></td>
<td><span style="font-size: 10pt">&nbsp;指定sed脚本的文件名</span></td></tr></tbody></table></div>
<div></div>
<div></div>
<div><span style="font-size: 12pt"><strong>&nbsp;</strong></span></div>
<div><span style="font-size: 12pt"><strong>&nbsp;</strong></span></div>
<div><span style="font-size: 12pt"><strong>4.退出状态</strong></span></div>
<div>sed不向grep一样，不管是否找到指定的模式，它的退出状态都是0。只有当命令存在语法错误时，sed的退出状态才不是0。</div>
<div></div>
<div></div>
<div></div>
<div>
<div><span style="font-size: 12pt"><strong>5.正则表达式元字符</strong></span></div>
<div>&nbsp;与grep一样，sed也支持特殊元字符，来进行模式查找、替换。不同的是，sed使用的正则表达式是括在斜杠线"/"之间的模式。</div>
<div>如果要把正则表达式分隔符"/"改为另一个字符，比如o，只要在这个字符前加一个反斜线，在字符后跟上正则表达式，再跟上这个字符即可。例如：sed -n '\o^Myop' datafile</div>
<div>&nbsp;</div>
<div>
<table border="1" cellspacing="1" cellpadding="1" width="500">
<tbody>
<tr>
<td>&nbsp;<span style="font-size: 10pt">元字符</span></td>
<td><span style="font-size: 10pt">&nbsp;功能</span></td>
<td><span style="font-size: 10pt">&nbsp;示例</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;^</span></td>
<td><span style="font-size: 10pt">&nbsp;行首定位符</span></td>
<td><span style="font-size: 10pt">&nbsp;/^my/&nbsp; 匹配所有以my开头的行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;$</span></td>
<td><span style="font-size: 10pt">&nbsp;行尾定位符</span></td>
<td><span style="font-size: 10pt">&nbsp;/my$/&nbsp; 匹配所有以my结尾的行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;.</span></td>
<td><span style="font-size: 10pt">&nbsp;匹配除换行符以外的单个字符</span></td>
<td><span style="font-size: 10pt">&nbsp;/m..y/&nbsp; 匹配包含字母m，后跟两个任意字符，再跟字母y的行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;*</span></td>
<td><span style="font-size: 10pt">&nbsp;匹配零个或多个前导字符</span></td>
<td><span style="font-size: 10pt">&nbsp;/my*/&nbsp; 匹配包含字母m,后跟零个或多个y字母的行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;[]</span></td>
<td><span style="font-size: 10pt">&nbsp;匹配指定字符组内的任一字符</span></td>
<td><span style="font-size: 10pt">&nbsp;/[Mm]y/&nbsp; 匹配包含My或my的行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;[^]</span></td>
<td><span style="font-size: 10pt">&nbsp;匹配不在指定字符组内的任一字符</span></td>
<td><span style="font-size: 10pt">&nbsp;/[^Mm]y/&nbsp; 匹配包含y，但y之前的那个字符不是M或m的行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;\(..\)</span></td>
<td><span style="font-size: 10pt">&nbsp;保存已匹配的字符</span></td>
<td><span style="font-size: 10pt">&nbsp;1,20s/\(you\)self/\1r/&nbsp; 标记元字符之间的模式，并将其保存为标签1，之后可以使用\1来引用它。最多可以定义9个标签，从左边开始编号，最左边的是第一个。此例中，对第1到第20行进行处理，you被保存为标签1，如果发现youself，则替换为your。</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;&amp;</span></td>
<td><span style="font-size: 10pt">&nbsp;保存查找串以便在替换串中引用</span></td>
<td><span style="font-size: 10pt">&nbsp;s/my/**&amp;**/&nbsp;&nbsp;符号&amp;代表查找串。my将被替换为**my**</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;\&lt;</span></td>
<td><span style="font-size: 10pt">&nbsp;词首定位符</span></td>
<td><span style="font-size: 10pt">&nbsp;/\&lt;my/&nbsp; 匹配包含以my开头的单词的行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;\&gt;</span></td>
<td><span style="font-size: 10pt">&nbsp;词尾定位符</span></td>
<td><span style="font-size: 10pt">&nbsp;/my\&gt;/&nbsp; 匹配包含以my结尾的单词的行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;x\{m\}</span></td>
<td><span style="font-size: 10pt">&nbsp;连续m个x</span></td>
<td><span style="font-size: 10pt">&nbsp;/9\{5\}/ 匹配包含连续5个9的行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;x\{m,\}</span></td>
<td><span style="font-size: 10pt">&nbsp;至少m个x</span></td>
<td><span style="font-size: 10pt">&nbsp;/9\{5,\}/&nbsp; 匹配包含至少连续5个9的行</span></td></tr>
<tr>
<td><span style="font-size: 10pt">&nbsp;x\{m,n\}</span></td>
<td><span style="font-size: 10pt">&nbsp;至少m个，但不超过n个x</span></td>
<td><span style="font-size: 10pt">&nbsp;/9\{5,7\}/&nbsp; 匹配包含连续5到7个9的行</span></td></tr></tbody></table></div>
<div></div>
<div></div>
<div>&nbsp;</div>
<div></div>
<div><span style="font-size: 12pt"><strong>6.范例</strong></span></div>
<div>&nbsp;</div>
<div><strong>6.1 p命令</strong></div>
<div>命令p用于显示模式空间的内容。默认情况下，sed把输入行打印在屏幕上，选项-n用于取消默认的打印操作。当选项-n和命令p同时出现时,sed可打印选定的内容。</div>
<div>&nbsp;</div>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed <span style="color: #ff00ff">'/my/p'</span> datafile<br />#默认情况下，sed把所有输入行都打印在标准输出上。如果某行匹配模式my，p命令将把该行另外打印一遍。</span></code></span></p>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000"><br />sed <span style="color: #0000cc">-</span>n <span style="color: #ff00ff">'/my/p'</span> datafile<br />#选项<span style="color: #0000cc">-</span>n取消sed默认的打印，p命令把匹配模式my的行打印一遍。<br /></span></code></span></p></td></tr></tbody></table>
<p><strong>&nbsp;</strong></p>
<p><strong>6.2 d命令</strong></p>
<p>命令d用于删除输入行。sed先将输入行从文件复制到模式空间里，然后对该行执行sed命令，最后将模式空间里的内容显示在屏幕上。如果发出的是命令d，当前模式空间里的输入行会被删除，不被显示。</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed <span style="color: #ff00ff">'$d'</span> datafile<br />#删除最后一行，其余的都被显示<br /><br />sed <span style="color: #ff00ff">'/my/d'</span> datafile<br />#删除包含my的行，其余的都被显示</span></code></span></p></td></tr></tbody></table>
<p><strong>&nbsp;</strong></p>
<p><strong>6.3 s命令</strong></p>
<div></div>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed <span style="color: #ff00ff">'s/^My/You/g'</span> datafile<br />#命令末端的g表示在行内进行全局替换，也就是说如果某行出现多个My，所有的My都被替换为You。<br /><br />sed <span style="color: #0000cc">-</span>n <span style="color: #ff00ff">'1,20s/My$/You/gp'</span> datafile<br />#取消默认输出，处理1到20行里匹配以My结尾的行，把行内所有的My替换为You，并打印到屏幕上。</span></code></span></p></td></tr></tbody></table>
<div>&nbsp;&nbsp;</div>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed <span style="color: #ff00ff">'s#My#Your#g'</span> datafile<br />#紧跟在s命令后的字符就是查找串和替换串之间的分隔符。分隔符默认为正斜杠，但可以改变。无论什么字符（换行符、反斜线除外），只要紧跟s命令，就成了新的串分隔符。</span></code></span></p></td></tr></tbody></table>
<p><strong>&nbsp;</strong></p>
<p><strong>6.4 e选项</strong></p>
<p>-e是编辑命令，用于sed执行多个编辑任务的情况下。在下一行开始编辑前，所有的编辑动作将应用到模式缓冲区中的行上。</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed <span style="color: #0000cc">-</span>e <span style="color: #ff00ff">'1,10d'</span> <span style="color: #0000cc">-</span>e <span style="color: #ff00ff">'s/My/Your/g'</span> datafile</span></code></span></p>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">#选项-e用于进行多重编辑。第一重编辑删除第1-3行。第二重编辑将出现的所有My替换为Your。因为是逐行进行这两项编辑（即这两个命令都在模式空间的当前行上执行），所以编辑命令的顺序会影响结果。</span></code></span></p></td></tr></tbody></table>
<p><strong>&nbsp;</strong></p>
<p><strong>6.5 r命令</strong></p>
<p>r命令是读命令。sed使用该命令将一个文本文件中的内容加到当前文件的特定位置上。</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed <span style="color: #ff00ff">'/My/r introduce.txt'</span> datafile<br />#如果在文件datafile的某一行匹配到模式My，就在该行后读入文件introduce<span style="color: #0000cc">.</span>txt的内容。如果出现My的行不止一行，则在出现My的各行后都读入introduce<span style="color: #0000cc">.</span>txt文件的内容。</span></code></span></p></td></tr></tbody></table>
<div>&nbsp;</div>
<div><strong>6.6 w命令</strong></div>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed <span style="color: #0000cc">-</span>n <span style="color: #ff00ff">'/hrwang/w me.txt'</span> datafile<br /></span></code></span></p></td></tr></tbody></table>
<p><strong>&nbsp;</strong></p>
<p><strong>6.7 a\ 命令</strong></p>
<p>a\ 命令是追加命令，追加将添加新文本到文件中当前行（即读入模式缓冲区中的行）的后面。所追加的文本行位于sed命令的下方另起一行。如果要追加的内容超过一行，则每一行都必须以反斜线结束，最后一行除外。最后一行将以引号和文件名结束。</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed <span style="color: #ff00ff">'/^hrwang/a\<br />&gt;hrwang and mjfan are husband\<br />&gt;and wife'</span> datafile<br />#如果在datafile文件中发现匹配以hrwang开头的行，则在该行下面追加hrwang and mjfan are husband and wife</span></code></span></p></td></tr></tbody></table>
<p><strong>&nbsp;</strong></p>
<p><strong>6.8 i\ 命令</strong></p>
<p>i\ 命令是在当前行的前面插入新的文本。</p>
<p><strong>&nbsp;</strong></p>
<p><strong>6.9 c\ 命令</strong></p>
<p>sed使用该命令将已有文本修改成新的文本。</p>
<p><strong>&nbsp;</strong></p>
<p><strong>6.10 n命令</strong></p>
<p>sed使用该命令获取输入文件的下一行，并将其读入到模式缓冲区中，任何sed命令都将应用到匹配行紧接着的下一行上。</p>
<div></div>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><code><span style="color: #000000"><span style="font-size: 10pt">sed <span style="color: #ff00ff">'/hrwang/{n;s/My/Your/;}'</span> datafile</span><br /></span></code></p></td></tr></tbody></table>
<div><span style="color: #339999">注：如果需要使用多条命令，或者需要在某个地址范围内嵌套地址，就必须用花括号将命令括起来，每行只写一条命令，或这用分号分割同一行中的多条命令。</span></div>
<div>&nbsp;</div>
<div><strong>6.11 y命令</strong></div>
<div>该命令与UNIX/Linux中的tr命令类似，字符按照一对一的方式从左到右进行转换。例如，y/abc/ABC/将把所有小写的a转换成A，小写的b转换成B，小写的c转换成C。</div>
<div>&nbsp;</div>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed <span style="color: #ff00ff">'1,20y/hrwang12/HRWANG^$/'</span> datafile<br />#将1到20行内，所有的小写hrwang转换成大写，将1转换成^<span style="color: #0000cc">,</span>将2转换成<span style="color: #0000ff">$</span><span style="color: #008080">。</span><br />#正则表达式元字符对y命令不起作用。与s命令的分隔符一样，斜线可以被替换成其它的字符。</span></code></span></p></td></tr></tbody></table>
<p><strong>&nbsp;</strong></p>
<p><strong>6.12 q命令</strong></p>
<p>q命令将导致sed程序退出，不再进行其它的处理。</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><code><span style="color: #000000"><span style="font-size: 10pt">sed <span style="color: #ff00ff">'/hrwang/{s/hrwang/HRWANG/;q;}'</span> datafile</span><br /></span></code></p></td></tr></tbody></table>
<p><strong>&nbsp;</strong></p>
<p><strong>6.13 h命令和g命令</strong></p>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">#cat datafile</span></code></span></p>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">My name is hrwang.</span></code></span></p>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">Your name is mjfan.</span></code></span></p>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">hrwang is mjfan's husband.</span></code></span></p>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">mjfan is hrwang's wife.</span></code></span></p>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">&nbsp;</span></code>&nbsp;</span></p>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed <span style="color: #0000cc">-</span>e <span style="color: #ff00ff">'/hrwang/h'</span> <span style="color: #0000cc">-</span>e <span style="color: #ff00ff">'$G'</span> datafile</span></code></span></p>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed -e '/hrwang/H' -e '$G' datafile</span></code></span></p>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">#通过上面两条命令，你会发现h会把原来暂存缓冲区的内容清除，只保存最近一次执行h时保存进去的模式空间的内容。而H命令则把每次匹配hrwnag的行都追加保存在暂存缓冲区。<br /></span></code></span></p>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed -e '/hrwang/H' -e '$g' datafile</span></code></span></p>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">sed -e '/hrwang/H' -e '$G' datafile</span></code></span></p>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000">#通过上面两条命令，你会发现g把暂存缓冲区中的内容替换掉了模式空间中当前行的内容，此处即替换了最后一行。而G命令则把暂存缓冲区的内容追加到了模式空间的当前行后。此处即追加到了末尾。</span></code></span></p></td></tr></tbody></table>
<p><span style="font-size: 12pt"><strong>&nbsp;</strong></span></p>
<p><span style="font-size: 12pt"><strong>&nbsp;</strong></span></p>
<p><span style="font-size: 12pt"><strong>7. sed脚本</strong></span></p>
<p>sed脚本就是写在文件中的一列sed命令。脚本中，要求命令的末尾不能有任何多余的空格或文本。如果在一行中有多个命令，要用分号分隔。执行脚本时，sed先将输入文件中第一行复制到模式缓冲区，然后对其执行脚本中所有的命令。每一行处理完毕后，sed再复制文件中下一行到模式缓冲区，对其执行脚本中所有命令。使用sed脚本时，不再用引号来确保sed命令不被shell解释。例如sed脚本script：</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000"><span style="color: #ff9900">#handle datafile</span><br />3i\<br /><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><br />3<span style="color: #0000cc">,</span><span style="color: #0000ff">$</span><span style="color: #008080">s</span><span style="color: #0000cc">/</span><span style="color: #0000cc">\</span><span style="color: #0000cc">(</span>hrwang\<span style="color: #0000cc">)</span> is</span></code><code><span style="color: #000000">&nbsp;\<span style="color: #0000cc">(</span>mjfan\<span style="color: #0000cc">)</span><span style="color: #0000cc">/</span><span style="color: #0000cc">\</span>2 is \1<span style="color: #0000cc">/</span></span></code><code><span style="color: #000000"><br /><span style="color: #0000ff">$</span><span style="color: #008080">a</span><span style="color: #008080">\</span><br />We will love eachother <span style="color: #0000ff">for</span>ever！！</span></code><code><span style="color: #000000">&nbsp;</span></code></span></p>&nbsp;</td></tr></tbody></table>
<p>&nbsp;</p>
<div></div>
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
<tbody>
<tr>
<td>
<p style="line-height: 150%; margin: 5px"><span style="font-size: 10pt"><code><span style="color: #000000"><span style="color: #ff9900">#sed -f script datafile</span><br /><span style="color: #000000"><span style="color: #0000ff">My</span> </span>name is hrwang<br />Your name is mjfan<br /><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><span style="color: #0000cc">~</span><br />mjfan is hrwang<span style="color: #ff00ff"><span style="color: #000000">'s </span><span style="color: #000000">husband</span>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ＃啦啦～～～<br /><span style="color: #000000">mjfan is hrwang'</span></span><span style="color: #000000">s wife<span style="color: #0000cc">.</span><br /></span>We will love eachother forever！！</span></code></span></p></td></tr></tbody></table></div><br />
<div><span style="font-size: 10pt"><strong>转载：<a href="http://blog.chinaunix.net/u/22677/showart_1076318.html">http://blog.chinaunix.net/u/22677/showart_1076318.html</a></strong></span></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/393010.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-12-14 17:11 <a href="http://www.blogjava.net/stevenjohn/archive/2012/12/14/393010.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux 查看日志</title><link>http://www.blogjava.net/stevenjohn/archive/2012/12/05/392479.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Wed, 05 Dec 2012 05:59:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/12/05/392479.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/392479.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/12/05/392479.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/392479.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/392479.html</trackback:ping><description><![CDATA[<div id="cnblogs_post_body">
<p><strong>1、cat命令：</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>功能：</strong>1）显示整个文件。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;示例： $&nbsp;cat fileName</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2）把文件串连接后传到基本输出，如将几个文件合并为一个文件或输出到屏幕。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 示例： $ cat file1 file2 &gt; file</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;说明：把档案串连接后传到基本输出(屏幕或加 &gt; fileName 到另一个档案)<br /><strong>&nbsp;&nbsp;&nbsp;&nbsp; cat参数详解：</strong><br />&nbsp;&nbsp;&nbsp;&nbsp; -n 或 &#8211;number 由 1 开始对所有输出的行数编号<br />&nbsp;&nbsp;&nbsp;&nbsp; -b 或 &#8211;number-nonblank 和 -n 相似，只不过对于空白行不编号<br />&nbsp;&nbsp;&nbsp;&nbsp; -s 或 &#8211;squeeze-blank 当遇到有连续两行以上的空白行，就代换为一行的空白行<br />&nbsp;&nbsp;&nbsp;&nbsp; -v 或 &#8211;show-nonprinting</p>
<p><strong>2、more命令：</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 以百分比的形式查看日志。&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;</p>
<p><strong>3、less命令：</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 跟more功能差不多，只不过less支持前后翻阅文件。</p>
<p>&nbsp;</p>
<p><strong>4、head命令：</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>功能：</strong>从文本文件的头部开始查看，head 命令用于查看一个文本文件的开头部分。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 示例如下：<br />&nbsp;&nbsp;&nbsp;&nbsp; head example.txt 显示文件 example.txt 的前十行内容；<br />&nbsp;&nbsp;&nbsp;&nbsp; head -n 20 example.txt 显示文件 example.txt 的前二十行内容；<br />&nbsp;&nbsp;&nbsp; &nbsp;<strong>head详解：</strong><br />&nbsp;&nbsp; &nbsp; -n &nbsp;&nbsp;&nbsp; &nbsp;指定你想要显示文本多少行。<br />&nbsp;&nbsp;&nbsp;&nbsp; -n number &nbsp;&nbsp; &nbsp;这个参数选项必须是十进制的整数，它将决定在文件中的位置，以行为单位。<br />&nbsp;&nbsp;&nbsp;&nbsp; -c number &nbsp;&nbsp; &nbsp;这个参数选项必须是十进制的整数，它将决定在文件中的位置，以字节为单位。</p>
<p><strong>5、tail命令：</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>功能：</strong>tail 命令用于显示文本文件的末尾几行。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 示例如下：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; tail example.txt 显示文件 example.txt 的后十行内容；<br />&nbsp;&nbsp;&nbsp;&nbsp; tail -n 20 example.txt 显示文件 example.txt 的后二十行内容；<br />&nbsp;&nbsp;&nbsp;&nbsp; tail -f example.txt 显示文件 example.txt 的后十行内容并在文件内容增加后，自动显示新增的文件内容。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; tail -n 50 -f example.txt 显示文件 example.txt 的后50行内容并在文件内容增加后，自动显示新增的文件内容。<br />&nbsp;&nbsp;&nbsp;&nbsp; 注意：<br />&nbsp;&nbsp;&nbsp;&nbsp; 最后一条命令非常有用，尤其在监控日志文件时，可以在屏幕上一直显示新增的日志信息。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>tail详解：<br /></strong>&nbsp;&nbsp;&nbsp;&nbsp; -b Number 从 Number 变量表示的 512 字节块位置开始读取指定文件。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; -c Number 从 Number 变量表示的字节位置开始读取指定文件。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; -f 如果输入文件是常规文件或如果 File 参数指定 FIFO（先进先出），<br />&nbsp;&nbsp;&nbsp;&nbsp; 那么 tail 命令不会在复制了输入文件的最后的指定单元后终止，而是继续<br />&nbsp;&nbsp;&nbsp; &nbsp;从输入文件读取和复制额外的单元（当这些单元可用时）。如果没有指定 File 参数，<br />&nbsp; &nbsp;&nbsp; 并且标准输入是管道，则会忽略 -f 标志。tail -f 命令可用于监视另一个进程正在写入的文件的增长。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; -k Number 从 Number 变量表示的 1KB 块位置开始读取指定文件。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; -m Number 从 Number 变量表示的多字节字符位置开始读取指定文件。使用该标志提供在单字节和双字节字符代码集环境中的一致结果。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -n Number 从首行或末行位置来读取指定文件，位置由 Number 变量的符号（+ 或 - 或无）表示，并通过行号 Number 进行位移。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -r 从文件末尾以逆序方式显示输出。-r 标志的缺省值是以逆序方式显示整个文件。如果文件大于 20,480 字节，那么-r标志只显示最后的 20,480 字节。 -r 标志只有<br />&nbsp;&nbsp; 与 -n 标志一起时才有效。否则，就会将其忽略。</p></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/392479.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-12-05 13:59 <a href="http://www.blogjava.net/stevenjohn/archive/2012/12/05/392479.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NC常用命令 </title><link>http://www.blogjava.net/stevenjohn/archive/2012/11/21/391698.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Wed, 21 Nov 2012 06:57:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/11/21/391698.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/391698.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/11/21/391698.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/391698.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/391698.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 命令1：监听命令&nbsp;nc -l -p port&nbsp;nc -l -p port &gt; e:\log.dat&nbsp;nc -l -v -p port&nbsp;参数解释：&nbsp;-l：监听端口，监听入站信息&nbsp;-p：后跟本地端口号&nbsp;-v：显示端口的信息，如果使用-vv的话，则会显示端口更详细的信息&nbsp;提示：一般大家都爱用-vv&nbsp;nc -l...&nbsp;&nbsp;<a href='http://www.blogjava.net/stevenjohn/archive/2012/11/21/391698.html'>阅读全文</a><img src ="http://www.blogjava.net/stevenjohn/aggbug/391698.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-11-21 14:57 <a href="http://www.blogjava.net/stevenjohn/archive/2012/11/21/391698.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>8 个实用的 Linux netcat 命令示例 </title><link>http://www.blogjava.net/stevenjohn/archive/2012/11/19/391596.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Mon, 19 Nov 2012 09:01:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/11/19/391596.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/391596.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/11/19/391596.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/391596.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/391596.html</trackback:ping><description><![CDATA[　Netcat 或者叫 nc 是 Linux 下的一个用于调试和检查网络工具包。可用于创建 TCP/IP 连接，最大的用途就是用来处理 TCP/UDP 套接字。 
<p>　　这里我们将通过一些实例来学习 netcat 命令。</p>
<h3>　　1. 在服务器-客户端架构上使用 Netcat</h3>
<p>　　netcat 工具可运行于服务器模式，侦听指定端口</p>
<div>
<div id="highlighter_456888" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -l 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　然后你可以使用客户端模式来连接到 2389 端口：</p>
<div>
<div id="highlighter_880431" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc localhost 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　　现在如果你输入一些文本，它将被发送到服务器端：</p>
<div>
<div id="highlighter_960526" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc localhost 2389 </code></div>
<div class="line number2 index1 alt1"><code class="shell plain">HI, oschina</code></div></div></td></tr></tbody></table></div></div>
<p>　　在服务器的终端窗口将会显示下面内容：</p>
<div>
<div id="highlighter_509941" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -l 2389 </code></div>
<div class="line number2 index1 alt1"><code class="shell plain">HI, oschina</code></div></div></td></tr></tbody></table></div></div>
<h3>　　2. 使用 Netcat 来传输文件</h3>
<p>　　netcat 工具还可用来传输文件，在客户端，假设我们有一个 testfile 文件：</p>
<div>
<div id="highlighter_654828" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ </code><code class="shell functions">cat</code> <code class="shell plain">testfile </code></div>
<div class="line number2 index1 alt1"><code class="shell plain">hello oschina</code></div></div></td></tr></tbody></table></div></div>
<p>　　而在服务器端有一个空文件名为 test</p>
<p>　　然后我们使用如下命令来启用服务器端：</p>
<div>
<div id="highlighter_964246" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -l 2389 &gt; </code><code class="shell functions">test</code></div></div></td></tr></tbody></table></div></div>
<p>　　紧接着运行客户端：</p>
<div>
<div id="highlighter_818683" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell functions">cat</code> <code class="shell plain">testfile | nc localhost 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　　然后你停止服务器端，你可以查看 test 内容就是刚才客户端传过来的 testfile 文件的内容：</p>
<div>
<div id="highlighter_25741" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ </code><code class="shell functions">cat</code> <code class="shell functions">test</code></div>
<div class="line number2 index1 alt1"><code class="shell plain">hello oschina</code></div></div></td></tr></tbody></table></div></div>
<h3>　　3. Netcat 支持超时控制</h3>
<p>　　多数情况我们不希望连接一直保持，那么我们可以使用 -w 参数来指定连接的空闲超时时间，该参数紧接一个数值，代表秒数，如果连接超过指定时间则连接会被终止。</p>
<p>　　服务器:</p>
<div>
<div id="highlighter_820552" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">nc -l 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　　客户端:</p>
<div>
<div id="highlighter_449240" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -w 10 localhost 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　　该连接将在 10 秒后中断。</p>
<p>　　注意: 不要在服务器端同时使用 -w 和 -l 参数，因为 -w 参数将在服务器端无效果。</p>
<h3>　　4. Netcat 支持 IPv6</h3>
<p>netcat 的 -4 和 -6 参数用来指定 IP 地址类型，分别是 IPv4 和 IPv6：</p>
<p>　　服务器端：</p>
<div>
<div id="highlighter_468215" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -4 -l 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　　客户端：</p>
<div>
<div id="highlighter_878398" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -4 localhost 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　　然后我们可以使用 netstat 命令来查看网络的情况：</p>
<div>
<div id="highlighter_288833" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
<div class="line number3 index2 alt2">3</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ </code><code class="shell functions">netstat</code> <code class="shell plain">| </code><code class="shell functions">grep</code> <code class="shell plain">2389 </code></div>
<div class="line number2 index1 alt1"><code class="shell plain">tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 localhost:2389&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; localhost:50851&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ESTABLISHED </code></div>
<div class="line number3 index2 alt2"><code class="shell plain">tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 localhost:50851&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; localhost:2389&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ESTABLISHED</code></div></div></td></tr></tbody></table></div></div>
<p>　　接下来我们看看IPv6 的情况：</p>
<p>　　服务器端：</p>
<div>
<div id="highlighter_296326" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -6 -l 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　　客户端：</p>
<div>
<div id="highlighter_431001" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -6 localhost 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　　再次运行 netstat 命令：</p>
<div>
<div id="highlighter_797468" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
<div class="line number3 index2 alt2">3</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ </code><code class="shell functions">netstat</code> <code class="shell plain">| </code><code class="shell functions">grep</code> <code class="shell plain">2389 </code></div>
<div class="line number2 index1 alt1"><code class="shell plain">tcp6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 localhost:2389&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; localhost:33234&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ESTABLISHED </code></div>
<div class="line number3 index2 alt2"><code class="shell plain">tcp6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 localhost:33234&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; localhost:2389&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ESTABLISHED</code></div></div></td></tr></tbody></table></div></div>
<p>　　前缀是 tcp6 表示使用的是 IPv6 的地址。</p>
<h3>　　5. 在 Netcat 中禁止从标准输入中读取数据</h3>
<p>　　该功能使用 -d 参数，请看下面例子：</p>
<p>　　服务器端：</p>
<div>
<div id="highlighter_175800" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -l 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　　客户端：</p>
<div>
<div id="highlighter_542686" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -d localhost 2389 </code></div>
<div class="line number2 index1 alt1"><code class="shell plain">Hi</code></div></div></td></tr></tbody></table></div></div>
<p>　　你输入的 Hi 文本并不会送到服务器端。</p>
<h3>　　6. 强制 Netcat 服务器端保持启动状态</h3>
<p>　　如果连接到服务器的客户端断开连接，那么服务器端也会跟着退出。</p>
<p>　　服务器端：</p>
<div>
<div id="highlighter_676882" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -l 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　　客户端：</p>
<div>
<div id="highlighter_824969" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc localhost 2389 </code></div>
<div class="line number2 index1 alt1"><code class="shell plain">^C</code></div></div></td></tr></tbody></table></div></div>
<p>　　服务器端：</p>
<div>
<div id="highlighter_970593" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -l 2389 </code></div>
<div class="line number2 index1 alt1"><code class="shell plain">$</code></div></div></td></tr></tbody></table></div></div>
<p>　　上述例子中，但客户端断开时服务器端也立即退出。</p>
<p>　　我们可以通过 -k 参数来控制让服务器不会因为客户端的断开连接而退出。</p>
<p>　　服务器端：</p>
<div>
<div id="highlighter_999656" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -k -l 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　　客户端：</p>
<div>
<div id="highlighter_909302" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc localhost 2389 </code></div>
<div class="line number2 index1 alt1"><code class="shell plain">^C</code></div></div></td></tr></tbody></table></div></div>
<p>　　服务器端：</p>
<div>
<div id="highlighter_469274" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -k -l 2389</code></div></div></td></tr></tbody></table></div></div>
<h3>　　7. 配置 Netcat 客户端不会因为 EOF 而退出</h3>
<p>　　Netcat 客户端可以通过 -q 参数来控制接收到 EOF 后隔多长时间才退出，该参数的单位是秒：</p>
<p>　　客户端使用如下方式启动：</p>
<div>
<div id="highlighter_80934" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">nc&nbsp; -q 5&nbsp; localhost 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　　现在如果客户端接收到 EOF ，它将等待 5 秒后退出。</p>
<h3>　　8. 使用 Netcat 来处理 UDP 协议</h3>
<p>　　netcat 默认是使用 TCP 协议，但也支持 UDP，可使用 -u 参数来启用 UDP 协议通讯。</p>
<p>　　服务器端：</p>
<div>
<div id="highlighter_135663" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -4 -u -l 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　客户端：</p>
<div>
<div id="highlighter_44801" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ nc -4 -u localhost 2389</code></div></div></td></tr></tbody></table></div></div>
<p>　　这样客户端和服务器端都使用了 UDP 协议，可通过 netstat 命令来查看：</p>
<div>
<div id="highlighter_496036" class="syntaxhighlighter  shell ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.admin10000.com/document/1169.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="shell plain">$ </code><code class="shell functions">netstat</code> <code class="shell plain">| </code><code class="shell functions">grep</code> <code class="shell plain">2389 </code></div>
<div class="line number2 index1 alt1"><code class="shell plain">udp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 localhost:42634&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; localhost:2389&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ESTABLISHED</code></div></div></td></tr></tbody></table></div></div>
<p>　　英文原文：<a href="http://www.thegeekstuff.com/2012/04/nc-command-examples/" rel="nofollow" target="_blank" jquery1353296324546="63">nc-command-examples</a></p><img src ="http://www.blogjava.net/stevenjohn/aggbug/391596.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-11-19 17:01 <a href="http://www.blogjava.net/stevenjohn/archive/2012/11/19/391596.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux下which、whereis、locate、find 命令的区别</title><link>http://www.blogjava.net/stevenjohn/archive/2012/11/09/391103.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Fri, 09 Nov 2012 08:19:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/11/09/391103.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/391103.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/11/09/391103.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/391103.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/391103.html</trackback:ping><description><![CDATA[<div><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;">我们经常在linux要查找某个文件，但不知道放在哪里了，可以使用下面的一些命令来搜索。这些是从网上找到的资料，因为有时很长时间不会用到，当要用的时候经常弄混了，所以放到这里方便使用。&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> which&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 查看可执行文件的位置&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> whereis&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 查看文件的位置&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> locate&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 配 合数据库查看文件位置&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> find&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 实际搜寻硬盘查询文件名称&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 1、which&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 语法：&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> [root@redhat ~]# which 可执行文件名称&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 例如：&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> [root@redhat ~]# which passwd&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /usr/bin/passwd&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> which是通过 PATH环境变量到该路径内查找可执行文件，所以基本的功能是寻找可执行文件&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 2、whereis&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 语法：&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> [root@redhat ~]# whereis [-bmsu] 文件或者目录名称&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 参数说 明：&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> -b ： 只找二进制文件&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> -m： 只找在说明文件manual路径下的文件&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> -s ： 只找source源文件&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> -u ： 没有说明文档的文件&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 例如：&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> [root@redhat ~]# whereis passwd&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 将和passwd文件相关的文件都查找出来&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> [root@redhat ~]# whereis -b passwd&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> passwd: /usr/bin/passwd /etc/passwd&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 只将二进制文件 查找出来&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 和find相比，whereis查找的速度非常快，这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中，当使用whereis和下面即将介绍的locate时，会从数据库中查找数据，而不是像find命令那样，通 过遍历硬盘来查找，效率自然会很高。&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 但是该数据库文件并不是实时更新，默认情况下时一星期更新一次，因此，我们在用whereis和locate 查找文件时，有时会找到已经被删除的数据，或者刚刚建立文件，却无法查找到，原因就是因为数据库文件没有被更新。&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 3、 locate&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 语法：&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> [root@redhat ~]# locate 文件或者目录名称&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 例 如：&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> [root@redhat ~]# locate passwd&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/weblogic/bea/user_projects/domains/zhanggongzhe112/myserver/stage/_appsdir_DB_war/DB.war/jsp/as/user/passwd.jsp</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/weblogic/bea/user_projects/domains/zhanggongzhe112/myserver/stage/_appsdir_admin_war/admin.war/jsp/platform/passwd.jsp</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /lib/security/pam_unix_passwd.so&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /lib/security/pam_passwdqc.so&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /usr/include/rpcsvc/yppasswd.x&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /usr/include/rpcsvc/yppasswd.h&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /usr/lib/perl5/5.8.5/i386-linux-thread-multi/rpcsvc/yppasswd.ph&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /usr/lib/kde3/kded_kpasswdserver.la&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /usr/lib/kde3/kded_kpasswdserver.so&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /usr/lib/ruby/1.8/webrick/httpauth/htpasswd.rb&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /usr/bin/vncpasswd&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /usr/bin/userpasswd&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /usr/bin/yppasswd&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> &#8230;&#8230;&#8230;&#8230;&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 4、 find&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 语法：&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> [root@redhat ~]# find 路径 参数&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 参 数说明：&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 时间查找参数：&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> -atime n :将n*24小时内存取过的的文件列出来&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> -ctime n :将n*24小时内改变、新增的文件或者目录列出来&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> -mtime n :将n*24小时内修改过的文件或者目录列出来&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> -newer file ：把比file还要新的文件列出来&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 名称查找参数：&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> -gid n&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> ：寻找群组ID为n的文件&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> -group name&nbsp;<wbr> ：寻找群组名称为name的文件&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> -uid n&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> ：寻找拥有者ID为n的文件&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> -user name&nbsp;<wbr>&nbsp;<wbr> ：寻找用户者名称为name的文件&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> -name file&nbsp;<wbr>&nbsp;<wbr> ：寻找文件名为file的文件（可以使用通配符）&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 例 如：&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> [root@redhat ~]# find / -name zgz&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/zgz&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/zgz/zgz&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/weblogic/bea/user_projects/domains/zgz&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/oracle/product/10g/cfgtoollogs/dbca/zgz&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/oracle/product/10g/cfgtoollogs/emca/zgz&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/oracle/oradata/zgz&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> [root@redhat ~]# find / -name '*zgz*'&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/zgz&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/zgz/zgz1&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/zgz/zgzdirzgz&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/zgz/zgz&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/zgz/zgzdir&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/weblogic/bea/user_projects/domains/zgz&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/weblogic/bea/user_projects/domains/zgz/zgz.log00006&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/weblogic/bea/user_projects/domains/zgz/zgz.log00002&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/weblogic/bea/user_projects/domains/zgz/zgz.log00004&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/weblogic/bea/user_projects/domains/zgz/zgz.log&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/weblogic/bea/user_projects/domains/zgz/zgz.log00008&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> /home/weblogic/bea/user_projects/domains/zgz/zgz.log00005&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> 当我们用whereis和locate无法查找到我们需要的文件时，可以使用find，但是find是在硬盘上遍历查 找，因此非常消耗硬盘的资源，而且效率也非常低，因此建议大家优先使用whereis和locate。&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> locate 是在数据库里查找，数据库大至每天更新一次。&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> whereis 可以找到可执行命令和man page&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> find 就是根据条件查找文件。&nbsp;<wbr></span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;" />  <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff;"> which 可以找到可执行文件和别名(alias)</span></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/391103.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-11-09 16:19 <a href="http://www.blogjava.net/stevenjohn/archive/2012/11/09/391103.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux nmap</title><link>http://www.blogjava.net/stevenjohn/archive/2012/11/09/391090.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Fri, 09 Nov 2012 05:11:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/11/09/391090.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/391090.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/11/09/391090.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/391090.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/391090.html</trackback:ping><description><![CDATA[<div><p><strong>nmap 使用介绍</strong></p> <p>nmap是目前为止最广为使用的国外端口扫描工具之一。我们可以从<a href="http://www.insecure.org/">http://www.insecure.org/</a>进 行下载，可以很容易的安装到Windows和unix操作系统中，包括mac os x（通过configure、make 、make  install等命令）也可以直接从http：//www.insecure.org/下载windows二进制（包括所需要的winpcap）也可以从 http：//www.nmapwin.org/获得nmap的图形windows。</p> <p><strong>扫描主机</strong></p></div><div><pre>$ nmap -sT 192.168.1.18 <br />Starting nmap 3.48(http://www.insecure.org/nmap/)at 2007-10-10 18:13 <br />EDT Interesting ports on gamebase(192.168.1.18)<br />&nbsp;port                  state                serverice <br />22/tcp              open                ssh <br />111/tcp            open                sunrpc  <br />.......... <br />$ nmap -sR 192.168.1.18 <br />Startingnmap 3.48(http://www.insecure.org/nmap/)at 2007-10-10 18:13 <br />EDT Interesting ports on gamebase(192.168.1.18) <br />port                  state                serverice <br />22/tcp              open                ssh <br />111/tcp            open                sunrpc  <br />..........<br /><br /><div><p>我们可以使用ping扫描的方法（-sP），与fping的工作方式比较相似，它发送icmp回送请求到指定范围的ip地址并等待响应。现在很多主 机在扫描的时候都做了处理，阻塞icmp请求，这种情况下。nmap将尝试与主机的端口80进行连接，如果可以接收到响应（可以是syn/ack，也可以 是rst），那么证明主机正在运行，反之，则无法判断主机是否开机或者是否在网络上互连。</p> <p><strong>扫描tcp端口</strong></p> <p>这里-sR是怎样在打开的端口上利用RPC命令来判断它们是否运行了RPC服务。</p> <p>nmap可以在进行端口扫描的tcp报文来做一些秘密的事情。首先，要有一个SYN扫描（-sS),它只做建立TCP连接的前面一些工作，只发送一 个设置SYN标志的TCP报文，一个RESET报文，那么nmap假设这个端口是关闭的，那么就不做任何事情了。如果接收到一个响应，它并不象正常的连接 一样对这个报文进行确认，而是发送一个RET报文，TCP的三次握手还没有完成，许多服务将不会记录这次连接。</p> <p>有的时候，nmap会告诉我们端口被过滤，这意味着有防火墙或端口过滤器干扰了nmap，使其不能准确的判断端口是打开还是关闭的，有的防火墙只能过滤掉进入的连接。</p> <p><strong>扫描协议</strong></p> <p>如果试图访问另一端无程序使用的UDP端口，主机将发回一个icmp&#8220;端口不可达&#8221;的提示消息，IP协议也是一样。每个传输层的IP协议都有一个相 关联的编号，使用最多的是ICMP(1)、TCP(6)和UDP(17)。所有的IP报文都有一个&#8220;协议&#8221;域用于指出其中的传输层报文头所使用的协议。如 果我们发送一个没有传输层报文头的原始IP报文并把其协议域编号为130[该编号是指类似IPSEC协议的被称为安全报文外壳或SPS协议]，就可以判断 这个协议是否在主机上实现了。如果我们得到的是ICMP协议不可达的消息，意味着该协议没有被实现，否则就是已经实现了，用法为-sO.</p> <p><strong>隐蔽扫描行为</strong></p> <p>nmap给出了几个不同的扫描选项，其中一些可以配套着隐藏扫描行为，使得不被系统日志、防火墙和IDS检测到。提供了一些随机的和欺骗的特性。具体例子如下：</p> <p>FTP反弹，在设计上，FTP自身存在一个很大的漏洞，当使用FTP客户机连接到FTP服务器时，你的客户机在TCP端口21上与FTP服务器对 话，这个TCP连接称为控制连接。FTP服务器现在需要另一条与客户机连接，该连接称为数据连接，在这条连接上将传送实际的文件数据，客户机将开始监听另 一个TCP端口上从服务器发挥的数据连接，接下来执行一个PORT命令到服务器，告诉它建立一条数据连接到客户机的IP地址和一个新打开的端口，这种操作 方法称为主动传输。许多客户机使用网络地址转换或通过防火墙与外界连接，所以主动传输FTP就不能正常工作，因为由服务器建立的客户机的连接通常不允许通 过。</p> <p>被动传输是大多数FTP客户机和服务器所使用的方法，因为客户机既建立控制连接又建立数据连接，这样可以通过防火墙或NAT了。</p> <p>FTP的PORT命令，用来告诉FTP连接的服务器，使得与刚刚打开的用于数据连接的端口之间建立一个连接。由于我们不仅指定端口而且指定连接所用 的IP地址，所以客户端也可以通过PORT命令让服务器连接到任何地方。所以我们一样可以让nmap用这个方法进行防火墙穿透。nmap做的所有工作是与 一台服务器建立一个主动模式的FTP连接，并发送一个包含它试图扫描的主机IP地址和端口号的PORT命令。</p> <p>nmap -b <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#97;&#97;&#97;&#64;&#102;&#116;&#112;&#46;&#116;&#97;&#114;&#103;&#101;&#116;&#46;&#99;&#111;&#109;">aaa@ftp.target.com</a> -p 6000 192.168.1.226<br />nmap 与ftp服务器的对话的例子：<br />server：220&nbsp; target ftp server version 4 ready<br />client:user&nbsp; anonymous<br />server: 331 Guest login ok ,send e-mail as password<br />client:pass <br />server :230 login successful<br />client:PORT 192,168,1.226,23,112<br />server:200 PORT command successful<br />client:LIST<br />server:150 Opening ASCII connection for '/bin/ls'<br />server:226 Transfer complete</p> <p>PORT命令起作用，可以制造是别人进行端口扫描，扫描任何FTP服务器所能访问的主机，绕过防火墙和端口过滤器，但还是存在一些危险的，如果对方登陆到了你的这个匿名FTP服务器上，从日志查找到相应的匿名FTP连接，从而知道你的IP地址，这样就直接暴露了。</p> <p>nmap -sI 空闲扫描，主要是欺骗端口扫描的源地址。</p> <p>nmap -f 可以把TCP头分片的IP报文进行一些隐蔽的扫描。不完整的TCP报文不被防火墙阻塞也不被IDS检测到。</p> <p><strong>nmap-D</strong><br />选择几台肉鸡，并使用-D标志在命令行中指定它们。namp通过诱骗的IP地址来进行欺骗式端口扫描，而系统管理员可以同时看到不同的端口扫描，而只有一个是真实的，很好的保护了自己。</p> <p><strong>os指纹识别</strong><br />这个是nmap最有用的功能之一，就是可以鉴别远程主机。通过简单的执行网络扫 描，nmap通常可以告诉你远程主机所运行的OS，甚至详细到版本号。当你指定-Q标志时，nmap将用几种不同的技术从主机返回IP报文中寻找这些鉴别 信息。通过发送特别设计的TCP和UDP头，nmap可以得到远程主机对TCP/IP协议栈的处理方法。它将分析结果与保存在文件中的已知特征信息进行比 较。</p> <p>OS鉴别选项也可以让nmap对TCP报文进行分析以决定另外一些信息，如系统的启动时间，TCP序列号，预测的序列号使我们更容易截获报文并猜测序列号从而伪造TCP连接。</p> <p><strong>nmap命令使用详细解释</strong></p> <p>-P0 -PT -PS -PU -PE -PP -PM -PB 当nmap进行某种类型的端口或协议扫描时，通常都会尝试先ping 主机，这种尝试可使nmap不会浪费时间在那些未开机的主机上，但是许多主机与防火墙会阻塞ICMP报文，我们希望能通过控制使用。</p> <p><strong>-P0</strong>&nbsp; 告诉nmap不ping 主机，只进行扫描</p> <p><strong>-PT</strong>&nbsp; 告诉nmap使用TCP的ping</p> <p><strong>-PS</strong>&nbsp; 发送SYN报文。</p> <p><strong>-PU</strong>&nbsp; 发送一个udp ping</p> <p><strong>-PE</strong>&nbsp; 强制执行直接的ICMP ping </p> <p><strong>-PB</strong>&nbsp; 这是默认类型，可以使用ICMP ping 也可以使用TCP ping .</p> <p><strong>-6</strong>&nbsp;&nbsp; 该标志允许IPv6支持</p> <p><strong>-v&nbsp; -d</strong>&nbsp; 使用-v选项可得到更详细的输出，而-d选项则增加调试输出。</p> <p><strong>-oN</strong>&nbsp; 按照人们阅读的格式记录屏幕上的输出，如果是在扫描多台机器，则该选项很有用。</p> <p><strong>-oX</strong>&nbsp; 以xml格式向指定的文件记录信息</p> <p><strong>-oG</strong>&nbsp; 以一种易于检索的格式记录信息，即每台主机都以单独的行来记录所有的端口和0s信息。</p> <p><strong>-oA</strong>&nbsp; 使用为基本文件名，以普通格式(-oN)、XML格式(-oX)和易于检索的格式（-oG）jilu&nbsp; xinxi&nbsp; </p> <p><strong>-oM</strong>&nbsp; 把输出格式化为机器可阅读的文件</p> <p><strong>-oS</strong>&nbsp; 把输出进行傻瓜型排版</p> <p><strong>--resume</strong>如果你取消了扫描，但生成了供人或者供机器阅读的文件，那么可以把该文件提供给nmap继续让它扫描。</p> <p><strong>-iR-iL</strong>可以不在命令行中指定目标主机，而是使用-iR选项随即产生待扫描的主机，或者使用-iL选项从一个包含主机名或IP地址列表的文件中读取目标主机，这些主机名或IP地址使用空格、制表符或换行隔开。</p> <p><strong>-F nmap</strong>只扫描在nmap内建的服务文件中已知的端口，如果不指定该选项，nmap将扫描端口 1-1024及包含在nmap-services文件中的所有其他端口。如果用-sO选项扫描协议，nmap将用它内建的协议文件(nmap- protocols文件)而不是默认地扫描所有256个协议。</p> <p><strong>-A nmap</strong>使用所有的高级扫描选项</p> <p><strong>-p </strong>参数可以是一个单独的端口、一个用逗号隔开的端口列表、一个使用&#8220;-&#8221;表示的端口范围或者上述格式的任意组合。如果没有指定该选项，nmap将对包含前1024个端口的所有端口进行一次快速扫描。</p> <p><strong>-e</strong>在多穴主机中，可以指定你用来进行网络通信的网络接口。</p> <p><strong>-g</strong>可以选择一个源端口，从该端口执行所有的扫描。</p> <p><strong>--ttlnmap</strong>其发送的任何报文在到中间路由器的跳后会失效。</p> <p><strong>--packet-trace</strong> 可以显示扫描期间nmap发送和接收的各个报文的详细列表，这对调试非常有用。要与-o选项之一联合使用，需要根权限，以将所有的数据记录到文件。</p> <p><strong>--scanflags</strong>可以使用这个选项手工的指定欲在扫描报文中设置的TCP标志。也可以指定TCP标志的OOred值的整数形式，或者标志的字符串表示形式。</p> <p>以上介绍的就是nmap在windows下和unix中的命令介绍。</p></div><br /></pre></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/391090.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-11-09 13:11 <a href="http://www.blogjava.net/stevenjohn/archive/2012/11/09/391090.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>