ps
1. ps 命令
- Unix风格的参数,前面加单破折线;
- BSD风格的参数,前面不加破折线;
- GNU风格的长参数,前面加双破折线
1.1. unix 风格命令
Unix风格的参数是从贝尔实验室开发的AT&T Unix系统上原有的ps命令继承下来的。这些参数如表4-1所示
参数 | 描述 |
---|---|
-A |
显示所有进程 |
-N |
显示与指定参数不符的所有进程 |
-a |
显示除控制进程(session leader1)和无终端进程外的所有进程 |
-d |
显示除控制进程外的所有进程 |
-e |
显示所有进程 |
-C *cmdlist* |
显示包含在*cmdlist *列表中的进程 |
-G *grplist* |
显示组ID在*grplist *列表中的进程 |
-U *userlist* |
显示属主的用户ID在*userlist *列表中的进程 |
-g *grplist* |
显示会话或组ID在*grplist *列表中的进程2 |
-p *pidlist* |
显示PID在*pidlist *列表中的进程 |
-s *sesslist* |
显示会话ID在*sesslist *列表中的进程 |
-t *ttylist* |
显示终端ID在*ttylist *列表中的进程 |
-u *userlist* |
显示有效用户ID在*userlist *列表中的进程 |
-F |
显示更多额外输出(相对-f 参数而言) |
-O *format* |
显示默认的输出列以及*format *列表指定的特定列 |
-M |
显示进程的安全信息 |
-c |
显示进程的额外调度器信息 |
-f |
显示完整格式的输出 |
-j |
显示任务信息 |
-l |
显示长列表 |
-o *format* |
仅显示由*format *指定的列 |
-y |
不要显示进程标记(process flag,表明进程状态的标记) |
-Z |
显示安全标签(security context)3信息 |
-H |
用层级格式来显示进程(树状,用来显示父进程) |
-n *namelist* |
定义了WCHAN 列显示的值 |
-w |
采用宽输出模式,不限宽度显示 |
-L |
显示进程中的线程 |
-V |
显示ps 命令的版本号 |
-
UID:启动这些进程的用户。
-
PID:进程的进程ID。
-
PPID:父进程的进程号(如果该进程是由另一个进程启动的)。
-
C:进程生命周期中的CPU利用率。
-
STIME:进程启动时的系统时间。
-
TTY:进程启动时的终端设备。
-
TIME:运行进程需要的累计CPU时间。
-
CMD:启动的程序名称。
-
F:内核分配给进程的系统标记。
-
S:进程的状态(O代表正在运行;S代表在休眠;R代表可运行,正等待运行;Z代表僵化,进程已结束但父进程已不存在;T代表停止)。
-
PRI:进程的优先级(越大的数字代表越低的优先级)。
-
NI:谦让度值用来参与决定优先级。
-
ADDR:进程的内存地址。
-
SZ:假如进程被换出,所需交换空间的大致大小。
-
WCHAN:进程休眠的内核函数的地址。
1.2. BSD 风格
了解了Unix风格的参数之后,我们来一起看一下BSD风格的参数。伯克利软件发行版(Berkeley software distribution,BSD)是加州大学伯克利分校开发的一个Unix版本。它和AT&T Unix系统有许多细小的不同,这也导致了多年的Unix争论。BSD版的ps命令参数如表4-2所示
参数 | 描述 |
---|---|
T |
显示跟当前终端关联的所有进程 |
a |
显示跟任意终端关联的所有进程 |
g |
显示所有的进程,包括控制进程 |
r |
仅显示运行中的进程 |
x |
显示所有的进程,甚至包括未分配任何终端的进程 |
U *userlist* |
显示归*userlist *列表中某用户ID所有的进程 |
p *pidlist* |
显示PID在*pidlist *列表中的进程 |
t *ttylist* |
显示所关联的终端在*ttylist *列表中的进程 |
O *format* |
除了默认输出的列之外,还输出由*format *指定的列 |
X |
按过去的Linux i386寄存器格式显示 |
Z |
将安全信息添加到输出中 |
j |
显示任务信息 |
l |
采用长模式 |
o *format* |
仅显示由*format *指定的列 |
s |
采用信号格式显示 |
u |
采用基于用户的格式显示 |
v |
采用虚拟内存格式显示 |
N *namelist* |
定义在WCHAN 列中使用的值 |
O *order* |
定义显示信息列的顺序 |
S |
将数值信息从子进程加到父进程上,比如CPU和内存的使用情况 |
c |
显示真实的命令名称(用以启动进程的程序名称) |
e |
显示命令使用的环境变量 |
f |
用分层格式来显示进程,表明哪些进程启动了哪些进程 |
h |
不显示头信息 |
k *sort* |
指定用以将输出排序的列 |
n |
和WCHAN 信息一起显示出来,用数值来表示用户ID和组ID |
w |
为较宽屏幕显示宽输出 |
H |
将线程按进程来显示 |
m |
在进程后显示线程 |
L |
列出所有格式指定符 |
V |
显示ps 命令的版本号 |
-
VSZ:进程在内存中的大小,以千字节(KB)为单位。
-
RSS:进程在未换出时占用的物理内存。
-
STAT:代表当前进程状态的双字符状态码。
-
VSZ:进程在内存中的大小,以千字节(KB)为单位。
-
RSS:进程在未换出时占用的物理内存。
-
STAT:代表当前进程状态的双字符状态码。
-
<:该进程运行在高优先级上。
-
N:该进程运行在低优先级上。
-
L:该进程有页面锁定在内存中。
-
s:该进程是控制进程。
-
l:该进程是多线程的。
-
+:该进程运行在前台
1.3. GNU 长参数
参数 | 描述 |
---|---|
--deselect |
显示所有进程,命令行中列出的进程 |
--Group *grplist* |
显示组ID在*grplist *列表中的进程 |
--User *userlist* |
显示用户ID在*userlist *列表中的进程 |
--group *grplist* |
显示有效组ID在*grplist *列表中的进程 |
--pid *pidlist* |
显示PID在*pidlist *列表中的进程 |
--ppid *pidlist* |
显示父PID在*pidlist *列表中的进程 |
--sid *sidlist* |
显示会话ID在*sidlist *列表中的进程 |
--tty *ttylist* |
显示终端设备号在*ttylist *列表中的进程 |
--user *userlist* |
显示有效用户ID在*userlist *列表中的进程 |
--format *format* |
仅显示由*format *指定的列 |
--context |
显示额外的安全信息 |
--cols *n* |
将屏幕宽度设置为*n *列 |
--columns *n* |
将屏幕宽度设置为*n *列 |
--cumulative |
包含已停止的子进程的信息 |
--forest |
用层级结构显示出进程和父进程之间的关系 |
--headers |
在每页输出中都显示列的头 |
--no-headers |
不显示列的头 |
--lines *n* |
将屏幕高度设为*n *行 |
--rows *n* |
将屏幕高度设为*n *排 |
--sort *order* |
指定将输出按哪列排序 |
--width *n* |
将屏幕宽度设为*n *列 |
--help |
显示帮助信息 |
--info |
显示调试信息 |
--version |
显示ps 命令的版本号 |
安装包
yum install procps