Linux ps 命令用于显示某个时刻进程的信息,也就是说它显示的是某个时刻进程的快照,它拥有众多的风格,可分为3组:UNIX风格,BSD风格,GNU风格,本文介绍UNIX风格的ps指令。

我们一般需要模糊匹配的方式查找进程,请看 Linux ps -ef grep查找进程

命令格式

ps [选项] 

其中,选项是可以缺省的,下面介绍ps命令一些常用的选项。

ps命令选项解释
-a与任何用户标识和终端相关的进程
-e所有进程(包括守护进程)
-ppid 与指定PID相关的进程
-uuserid 与指定用户标识userid相关的进程
-ef显示所有用户进程,完整输出
-a显示所有非守护进程
-t仅显示所有守护进程

显示参数

通过ps aux 命令看看有哪些参数

[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.6 128000  6624 ?        Ss   06:45   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    06:45   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   06:45   0:00 [kworker/0:0H]

相关参数的解释如下:

参数解释
ADDR
进程表中的虚拟地址

处理器利用率(废弃率)
CMD
正被执行的命令的名称
F与进程相关的标志
NI
nice值,用于设置优先级
PID
进程ID
PPID父进程的进程ID
PRI
优先级(较大的数字=较低的优先级)
RSS内存驻留空间大小(内存管理)
S状态代码(D,R,S,T,Z)
STIME
累积系统时间
SZ
物理页的大小(内存管理)
TIME
累积CPU时间
TTY
控制终端的完整名称
UID用户标识
WCHAN
等待通道

例子

1. 显示所有当前进程

$ ps -ax     //-a 代表 all,同时加上x参数会显示没有控制终端的进程。
$ ps -ax | less  //less便于查看 

2. 根据用户过滤进程

$ ps -u www//要查看用户'www'的进程 

3. 通过cpu和内存使用来过滤进程

$ $ ps -aux | less
$ ps -aux --sort -pcpu | less    //--sort命令根据CPU使用来升序排序
$ ps -aux --sort -pmem | less    //--sort命令根据内存使用来升序排序
$ ps -aux --sort -pcpu,+pmem | head -n 10       //同时根据CPU和内存排序,并显示前10个结果 

3. 通过进程名和PID过滤

$ ps -C java        //显示名为java的进程的信息
$ ps -f -C Java     //显示进程更多的信息 

4. 显示安全信息

$ ps -eo pid,user,args          //参数 -e 显示所有进程信息,-o 参数控制输出。Pid,User和Args参数显示PID,运行应用的用户和该应用 

5. 实时监控进程状态

$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’        //每秒刷新一次当前的进程状态
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu | head 20’    //限制前20条