<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Leftleg's Blog]]></title> 
<link>http://leftleg.hzpub.com/index.php</link> 
<description><![CDATA[Leftleg 生活 记录 摄影 工作 吉他 山地车 blog]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Leftleg's Blog]]></copyright>
<item>
<link>http://leftleg.hzpub.com/post/504/</link>
<title><![CDATA[ps 命令的用法]]></title> 
<author>leftleg &lt;leftleg@hotmail.com&gt;</author>
<category><![CDATA[UNIX ]]></category>
<pubDate>Thu, 04 Jan 2007 15:52:51 +0000</pubDate> 
<guid>http://leftleg.hzpub.com/post/504/</guid> 
<description>
<![CDATA[ 
	ps <br/>ps命令是UNIX系统中最常见的命令，它主要显示系统中关于进程的统计和状态信息，如进程ID，I/O行为以及CPU利用率等。利用ps命令提供的信息，可决定一个进程运行了多长时间，进程使用了多少CPU时间，以及进程是否受系统的惩罚。还可用ps命令确定进程使用了多少内存，完成多少I/O，进程的优先级以及是谁创建了进程。 <br/>下面这几个命令组合对于管理RS/6000 AIX系统有帮助： <br/>（1）显示10个消耗CPU最多的进程： <br/># ps aux &#124;head -1 ;ps aux &#124;sort -rn +2 &#124;head –10 <br/>（2）显示10个消耗存储空间最多的进程： <br/># ps aux &#124;head -1 ;ps aux &#124;sort -rn +3 &#124;head -10 <br/>（3）按顺序显示系统中受罚的进程： <br/>#ps -eakl &#124;head -1 ;ps -eakl &#124;sort -rn +5 <br/>（4）按优先级顺序显示系统中的进程： <br/>#ps -eakl &#124;sort -n +6 &#124;head <br/>（5）按处理时间为顺序显示系统中的前十个进程： <br/>#ps vx &#124;head -1 ;ps vx &#124;grep -v PID &#124;sort -rn +3 &#124;head –10 <br/>（6）按实际内存使用的多少顺序显示系统中的前十个进程： <br/>#ps vx &#124;head -1 ;ps vx &#124;grep -v PID &#124;sort -rn +6 &#124;head –10 <br/>（7）按换入页面的多少顺序显示系统中的前10个进程： <br/>#ps vx &#124;head -1 ;ps vx &#124;grep -v PID &#124;sort -rn +4 &#124;head -10 <br/><br/><br/><br/><br/>　　1. ps简介<br/><br/>　　前面介绍的两个命令都是用于查看当前系统用户的情况，下面就来看看进程的情况，这也是本章的主题。要对进程进行监测和控制，首先必须要了解当前进程的情况，也就是需要查看当前进程，而ps命令就是最基本时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。　2. ps命令及其参数<br/><br/>　　ps命令最常用的还是用于监控后台进程的工作情况，因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的，所以如果需要检测其情况，便可以使用ps命令了。<br/><br/>　　该命令语法格式如下：<br/>　　ps [选项]<br/><br/>　　下面对命令选项进行说明：<br/>　　-e 显示所有进程。<br/>　　-f 全格式。<br/>　　-h 不显示标题。<br/>　　-l 长格式。<br/>　　-w 宽输出。<br/><br/>　　a 显示终端上的所有进程，包括其他用户的进程。<br/>　　r 只显示正在运行的进程。<br/>　　x 显示没有控制终端的进程。<br/><br/>　　O[+&#124;-] k1 [，[+&#124;-] k2 [，…]] 根据SHORT KEYS、k1、k2中快捷键指定的多级排序顺序显示进程列表。对于ps的不同格式都存在着默认的顺序指定。这些默认顺序可以被用户的指定所覆盖。其中“+”字符是可选的，“-”字符是倒转指定键的方向。<br/><br/>　　pids 只列出付ń?痰那榭觥８鹘?蘄D之间使用逗号分隔。该进程列表必须在命令行参数的最后一个选项后面紧接着给出，中间不能插入空格。比如：ps -f1,4,5。<br/><br/>　　以下介绍长命令行选项，这些选项都使用“--”开头：<br/><br/>　　--sort X[+&#124;-] key [，[+&#124;-] key [，…]] 从SORT KEYS段中选一个多字母键。“+”字符是可选的，因为默认的方向就是按数字升序或者词典顺序。比如： ps -jax -sort=uid，-ppid，+pid。<br/>　　--help 显示帮助信息。<br/>　　--version 显示该命令的版本信息。<br/><br/>　　在前面的选项说明中提到了排序键，接下来对排序键作进一步说明。需要注意的是排序中使用的值是ps使用的内部值，并非仅用于某些输出格式的伪值。排序键列表见表4-3。<br/><br/>　　表4-3　排序键列表<br/><br/>　　短格式 <br/>　　长格式 <br/>　　说 明 <br/>　　c <br/>　　cmd <br/>　　可执行的简单名称 <br/><br/>　　C <br/>　　cmdline <br/>　　完整命令行 <br/><br/>　　f <br/>　　flags <br/>　　长模式标志 <br/><br/>　　g <br/>　　pgrp <br/>　　进程的组ID <br/><br/>　　G <br/>　　tpgid <br/>　　控制tty进程组ID <br/><br/>　　j <br/>　　cutime <br/>　　累计用户时间 <br/><br/>　　J <br/>　　cstime <br/>　　累计系统时间 <br/><br/>　　k <br/>　　utime <br/>　　用户时间 <br/><br/>　　K <br/>　　stime <br/>　　系统时间 <br/><br/>　　m <br/>　　min_flt <br/>　　次要页错误的数量 <br/><br/>　　M <br/>　　maj_flt <br/>　　主要页错误的数量 <br/><br/>　　n <br/>　　cmin_flt <br/>　　累计次要页错误 <br/><br/>　　N <br/>　　cmaj_flt <br/>　　累计主要页错误 <br/><br/>　　o <br/>　　session <br/>　　对话ID <br/><br/>　　p <br/>　　pid <br/>　　进程ID <br/><br/>　　P <br/>　　ppid <br/>　　父进程ID <br/><br/>　　r <br/>　　rss <br/>　　驻留大小 <br/><br/>　　R <br/>　　resident <br/>　　驻留页 <br/><br/>　　s <br/>　　size <br/>　　内存大小（千字节） <br/><br/>　　S <br/>　　share <br/>　　共享页的数量 <br/><br/>　　t <br/>　　tty <br/>　　tty次要设备号 <br/><br/>　　T <br/>　　start_time <br/>　　进程启动的时间 <br/><br/>　　U <br/>　　uid <br/>　　UID <br/><br/>　　u <br/>　　user <br/>　　用户名 <br/><br/>　　v <br/>　　vsize <br/>　　总的虚拟内存数量（字节） <br/><br/>　　y <br/>　　priority <br/>　　内核调度优先级 <br/><br/>　　3. 常用ps命令参数<br/><br/>　　前面两节介绍的参数可能让读者觉得有些可怕，实际上这是一个非常容易使用的命令，一般的用户只需掌握一些最常用的命令参数就可以了。<br/><br/>　　最常用的三个参数是u、a、x，下面将通过例子来说明其具体用法。<br/><br/>　　[例20] 以root身份登录系统，查看当前进程状况<br/><br/>　　$ ps<br/><br/>　　PID TTY TIME COMMAND<br/>　　5800 ttyp0 00:00:00 bash<br/>　　5835 ttyp0 00:00:00 ps<br/>　　可以看到，显示的项目共分为四项，依次为PID（进程ID）、TTY（终端名称）、TIME（进程执行时间）、COMMAND（该进程的命令行输入）。<br/><br/>　　可以使用u选项来查看进程所有者及其他一些详细信息，如下所示：<br/>　　$ ps u<br/>　　USER PID %CPU %MEM USZ RSS TTY STAT START TIME COMMAND<br/>　　test 5800 0.0 0.4 1892 1040 ttyp0 S Nov27 0:00 -bash<br/>　　test 5836 0.0 0.3 2528 856 ttyp0 R Nov27 0:00 ps u<br/><br/>　　在bash进程前面有条横线，意味着该进程便是用户的登录shell，所以对于一个登录用户来说带短横线的进程只有一个。还可以看到%CPU、%MEM两个选项，前者指该进程占用的CPU时间和总时间的百分比；后者指该进程占用的内存和总内存的百分比。<br/>　　在这种情况下看到了所有控制终端的进程；但是对于其他那些没有控制终端的进程还是没有观察到，所以这时就需要使用x选项。使用x选项可以观察到所有的进程情况。<br/>Tags - <a href="http://leftleg.hzpub.com/tags/ps/" rel="tag">ps</a> , <a href="http://leftleg.hzpub.com/tags/%25E5%2591%25BD%25E4%25BB%25A4/" rel="tag">命令</a> , <a href="http://leftleg.hzpub.com/tags/%25E6%258A%2580%25E5%25B7%25A7/" rel="tag">技巧</a> , <a href="http://leftleg.hzpub.com/tags/%25E8%25BF%259B%25E7%25A8%258B/" rel="tag">进程</a> , <a href="http://leftleg.hzpub.com/tags/%25E6%259F%25A5%25E7%259C%258B/" rel="tag">查看</a> , <a href="http://leftleg.hzpub.com/tags/%25E4%25BD%25BF%25E7%2594%25A8/" rel="tag">使用</a> , <a href="http://leftleg.hzpub.com/tags/%25E5%2586%2585%25E5%25AD%2598/" rel="tag">内存</a>
]]>
</description>
</item><item>
<link>http://leftleg.hzpub.com/post/504/#blogcomment642476</link>
<title><![CDATA[[评论] ps 命令的用法]]></title> 
<author>bill &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Wed, 21 Mar 2007 05:16:49 +0000</pubDate> 
<guid>http://leftleg.hzpub.com/post/504/#blogcomment642476</guid> 
<description>
<![CDATA[ 
	谢谢分享。
]]>
</description>
</item><item>
<link>http://leftleg.hzpub.com/post/504/#blogcomment642477</link>
<title><![CDATA[[评论] ps 命令的用法]]></title> 
<author>bill &lt;wildlily980@126.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Wed, 21 Mar 2007 05:17:37 +0000</pubDate> 
<guid>http://leftleg.hzpub.com/post/504/#blogcomment642477</guid> 
<description>
<![CDATA[ 
	谢谢分享。
]]>
</description>
</item>
</channel>
</rss>