Linux ps命令简介

Linux ps命令支持多种方式的options选项:

UNIX选项

要求必须在选项前加上“-”。 比如:

 ps -e  #打印全部进程信息
 ps -ef #以全信息格式打印全部进程信息

输出格式如下:

$ ps -ef

UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 7月15 ?       00:00:10 /sbin/init splash
root         2     0  0 7月15 ?       00:00:00 [kthreadd]
root         3     2  0 7月15 ?       00:00:04 [ksoftirqd/0]
root         5     2  0 7月15 ?       00:00:00 [kworker/0:0H]
root         7     2  0 7月15 ?       00:01:31 [rcu_sched]
root         8     2  0 7月15 ?       00:00:00 [rcu_bh]
root         9     2  0 7月15 ?       00:00:00 [migration/0]
root        10     2  0 7月15 ?       00:00:00 [watchdog/0]
root        11     2  0 7月15 ?       00:00:00 [watchdog/1]
...

关键选项介绍如下:

-a:打印除了会话首进程和不连接终端的进程(daemon)之外的所有进程
-A: 选择打印所有的进程
-e: 和-A选项一样
-u:选择打印某个有效用户id的进程
-U:选择打印某个真实用户id的进程
-f:全格式输出模式
-j:按照作业控制格式

BSD选项

BSD风格的输出会加上进程状态信息,并且在CMD那一列上会加上args,要求不能在选项前加上“-”。比如:

ps ax #输出所有进程信息
ps aux #以用户导向的格式输出所有进程信息

打印如下:

$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0 185716  5144 ?        Ss   7月15   0:11 /sbin/init splash
root         2  0.0  0.0      0     0 ?        S    7月15   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    7月15   0:04 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   7月15   0:00 [kworker/0:0H]
root         7  0.1  0.0      0     0 ?        S    7月15   1:51 [rcu_sched]
root         8  0.0  0.0      0     0 ?        S    7月15   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    7月15   0:00 [migration/0]
root        10  0.0  0.0      0     0 ?        S    7月15   0:00 [watchdog/0]
root        11  0.0  0.0      0     0 ?        S    7月15   0:00 [watchdog/1]
root        12  0.0  0.0      0     0 ?        S    7月15   0:00 [migration/1]
root        13  0.0  0.0      0     0 ?        S    7月15   0:05 [ksoftirqd/1]
root        15  0.0  0.0      0     0 ?        S<   7月15   0:00 [kworker/1:0H]
root        16  0.0  0.0      0     0 ?        S    7月15   0:00 [watchdog/2]
root        17  0.0  0.0      0     0 ?        S    7月15   0:00 [migration/2]
...

关键选项:

a:打印出所有拥有tty设备的进程(不一定是控制tty)包括其他用户,如果和x一起使用表示所有进程
u:按照用户导向的格式输出
x:输出所有属于当前用户id的进程(包括daemon),如果和a一起使用表示所有进程
j:按照作业控制格式输出

GNU 长选项

长选项是指以“–”指定的options选项,一般不太常用,本文不做过多介绍。详细信息参考man手册。

注意点

ps -aux
ps aux

使用以上两个命令,虽然看起来相似,并且运行时的输出一样,但是其实是两条不同的命令,“-aux”表示的是UNIX风格的选项,按照选项的解释,它表示打印有效用户为“x”的除了会话首进程之外的所有进程;而“aux”表示的是BSD风格选项,表示以用户导向的格式打印所有进程。

但是最后你会发现使用上述两者时打印都是以BSD选项的格式来输出的,这是为什么呢?原来针对“-aux”这种选项有一个隐含的操作,当发现系统中不存在“x”用户时,会按照BSD选项来解释它。所以这就是为什么两者输出一样的原因。

PS打印信息分析

  • 如何查看内核线程?
    内核线程在ps命令的输出中,COMMAND中会以“[]”来修饰,比如[kthreadd]、[watchdog/0]等等。

  • 如何查看一个daemon进程?
    使用“ps axj”按照作业控制格式输出所有进程,daemon进程都是不具有控制tty设备的,通过查看tty列,如果是一个“?”,那么说明他是一个daemon进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值