ps命令详解

概述

ps命令支持三种不同类型的选项

  • UNIX选项,以 - 符号开头
  • BSD选项,不能包含 -
  • GUN选项,以 -- 符号开头

不同类型的选项可以自由混合,但是有可能会产生冲突。

示例

Unix模式显示系统中的所有process进程

1
2
3
4
ps -e
ps -ef
ps -eF
ps -ely

BSD模式显示系统中的所有process进程

1
2
ps ax
ps aux

树状显示系统中所有process进程

1
2
3
ps -ejH
ps axjf
ps -ef f

树状显示系统中的所有threads线程

1
2
ps -eLf
ps axms

To get security info

1
2
3
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM

To see every process running as root (real & effective ID) in user format

1
ps -U root -u root u

To see every process with a user-defined format

1
2
3
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -Ao pid,tt,user,fname,tmout,f,wchan
1
ps -C syslogd -o pid=
1
ps -q 42 -o comm=

常用选项

选项 说明
-A
-e
显示所有进程信息
-123
123
--pid pidlist
-p pidlist
p pidlist
显示pidlist中指定的所有pid的进程信息
接受空白分隔或逗号分隔的列表形式的单个参数,如-p "123,124"-p "123 124"
-U userlist
--User userlist
显示userlist中指定的RUID(real user id)或name的进程信息
RUID表示create该进程的用户
U userlist
-u userlist
--user userlist
显示userlist中指定的EUID(effective user id)或name的进程信息
EUID用于系统决定用户对文件资源的访问权限,一般情况下等同于RUID
-f
-F
显示所有的列,通常与其它unix格式选项联合使用
使用该参数时会显示进程的命令参数信息
-L参数同时使用时,还会显示NLWP(number of threads)和LWP(thread id)信息
e 在命令列中最后显示进程的环境变量信息,如 ps -ef e
f ASCII字符显示树状结构, 表示程序间的层次关系
-m
m
显示进程中的线程信息
-L Show threads, possibly with LWP and NLWP columns
o format
-o format
--format format
用户自定义格式。
format可以是一个空白或逗号分割的列表,用于指定输出的列,支持的列表内容见输出列内容
列的表头内容可以重命名 ps -o pid,ruser=RealUser
列的表头可以忽略 ps -o pid=,comm=

上述中xxxlist的内容,表示接受空白分割或逗号分割的列表形式的单个参数

输出列内容