ps命令
补充说明
ps
命令用于报告当前系统的进程状态。可以搭配kill
指令随时中断、删除不必要的程序。ps
命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
语法
代码语言:javascript复制ps(选项)
选项
-a
:显示所有终端机下执行的程序,除了阶段作业领导者之外。a
:显示现行终端机下的所有程序,包括其他用户的程序。-A
:显示所有程序。-c
:显示CLS和PRI栏位。c
:列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。-C<指令名称>
:指定执行指令的名称,并列出该指令的程序的状况。-d
:显示所有程序,但不包括阶段作业领导者的程序。-e
:此选项的效果和指定"A"选项相同。e
:列出程序时,显示每个程序所使用的环境变量。-f
:显示UID,PPIP,C与STIME栏位。f
:用ASCII字符显示树状结构,表达程序间的相互关系。-g<群组名称>
:此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。g
:显示现行终端机下的所有程序,包括群组领导者的程序。-G<群组识别码>
:列出属于该群组的程序的状况,也可使用群组名称来指定。h
:不显示标题列。H
:显示树状结构,表示程序间的相互关系。j
或j
:采用工作控制的格式显示程序状况。l
或l
:采用详细的格式来显示程序状况。L
:列出栏位的相关信息。m
或m
:显示所有的执行绪。n
:以数字来表示USER和WCHAN栏位。N
:显示所有的程序,除了执行ps指令终端机下的程序之外。-p<程序识别码>
:指定程序识别码,并列出该程序的状况。p<程序识别码>
:此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。r
:只列出现行终端机正在执行中的程序。-s<阶段作业>
:指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。s
:采用程序信号的格式显示程序状况。S
:列出程序时,包括已中断的子程序资料。-t<终端机编号>
:指定终端机编号,并列出属于该终端机的程序的状况。t<终端机编号>
:此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。T
:显示现行终端机下的所有程序。-u<用户识别码>
:此选项的效果和指定"-U"选项相同。u
:以用户为主的格式来显示程序状况。-U<用户识别码>
:列出属于该用户的程序的状况,也可使用用户名称来指定。U<用户名称>
:列出属于该用户的程序的状况。v
:采用虚拟内存的格式显示程序状况。V
或V
:显示版本信息。w
或w
:采用宽阔的格式来显示程序状况。x
:显示所有程序,不以终端机来区分。X
:采用旧式的Linux i386登陆格式显示程序状况。-y
:配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位。-<程序识别码>
:此选项的效果和指定"p"选项相同。--cols<每列字符数>
:设置每列的最大字符数。--columns<每列字符数>
:此选项的效果和指定"–cols"选项相同。--cumulative
:此选项的效果和指定"S"选项相同。--deselect
:此选项的效果和指定"-N"选项相同。--forest
:此选项的效果和指定"f"选项相同。--headers
:重复显示标题列。--help
:在线帮助。--info
:显示排错信息。--lines<显示列数>
:设置显示画面的列数。--no-headers
:此选项的效果和指定"h"选项相同,只在列表格式方面稍有差异。--group<群组名称>
:此选项的效果和指定"-G"选项相同。--Group<群组识别码>
:此选项的效果和指定"-G"选项相同。--pid<程序识别码>
:此选项的效果和指定"-p"选项相同。--rows<显示列数>
:此选项的效果和指定"–lines"选项相同。--sid<阶段作业>
:此选项的效果和指定"-s"选项相同。--tty<终端机编号>
:此选项的效果和指定"-t"选项相同。--user<用户名称>
:此选项的效果和指定"-U"选项相同。--User<用户识别码>
:此选项的效果和指定"-U"选项相同。--version
:此选项的效果和指定"-V"选项相同。--widty<每列字符数>
:此选项的效果和指定"-cols"选项相同。
实例
查看进程的PID、名称以及CPU占用率:
代码语言:javascript复制ps axo pid,comm,pcpu
按内存资源的使用量对进程进行排序:
代码语言:javascript复制ps aux | sort -rnk 4
按CPU资源的使用量对进程进行排序:
代码语言:javascript复制ps aux | sort -nk 3
显示所有进程信息:
代码语言:javascript复制ps -A
显示指定用户信息:
代码语言:javascript复制ps -u root
查看线程数:
代码语言:javascript复制ps -efL
查看进程并按内存使用大小排列:
代码语言:javascript复制ps -e -o "%C : %p :%z : %a" | sort -k5 -nr
显示所有进程信息,连同命令行:
代码语言:javascript复制ps -ef
ps与grep常用组合用法,查找特定进程:
代码语言:javascript复制ps -ef | grep ssh
通过名字或命令搜索进程:
代码语言:javascript复制ps -C nginx
CPU或者内存进行排序,降序:
代码语言:javascript复制ps aux --sort=-pcpu, pmem
用树的风格显示进程的层次关系:
代码语言:javascript复制ps -f --forest -C nginx
显示一个父进程的子进程:
代码语言:javascript复制ps -o pid,uname,comm -C nginx
重定义标签:
代码语言:javascript复制ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm
显示进程运行的时间:
代码语言:javascript复制ps -e -o pid,comm,etime
查看named进程详细信息:
代码语言:javascript复制ps -aux | grep named
通过进程id获取服务名称:
代码语言:javascript复制ps -o command -p 91730 | sed -n 2p
将目前属于您自己这次登入的PID与相关信息列示出来:
代码语言:javascript复制ps -l
列出目前所有的正在内存当中的程序:
代码语言:javascript复制ps aux
找出与cron
与syslog
这两个服务有关的PID号码:
ps aux | egrep '(cron|syslog)'
把所有进程显示出来,并输出到ps001.txt
文件:
ps -aux > ps001.txt