linux ps

查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照。它能捕获系统在某一事件的进程状态。如果你想不断更新查看的这个状态,可以使用top命令。

ps命令支持三种使用的语法格式

  1. UNIX 风格,选项可以组合在一起,并且选项前必须有“-”连字符

  2. BSD 风格,选项可以组合在一起,但是选项前不能有“-”连字符

  3. GNU 风格的长选项,选项前有两个“-”连字符

我们能够混用这几种风格,但是可能会发生冲突。本文使用 UNIX 风格的ps命令。

这里有在日常生活中使用较多的ps命令的例子。

对应语法查询

$   man ps

常见例子

无参数

$   ps

PID TTY          TIME CMD
15599 pts/0    00:00:00 bash
15623 pts/0    00:00:00 ps

结果默认会显示4列信息。

PID: 运行着的命令(CMD)的进程编号

TTY: 命令所运行的位置(终端)

TIME: 运行着的该命令所占用的CPU处理时间

CMD: 该进程所运行的命令

这些信息在显示时未排序

根据某个属性排序

根据 CPU 使用来升序排序

$ ps -aux --sort -pcpu | less

ef 与 aux 区别

ef

$   ps -ef | grep XXXX 

ps -ef 是用标准的格式显示进程的

其中各列的内容意思如下 UID //用户ID、但输出的是用户名 PID //进程的ID PPID //父进程ID C //进程占用CPU的百分比 STIME //进程启动到现在的时间 TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。 CMD //命令的名称和参数\

aux

ps aux 是用BSD的格式来显示、其格式如下

同ps -ef 不同的有列有 USER //用户名 %CPU //进程占用的CPU百分比 %MEM //占用内存的百分比 VSZ //该进程使用的虚拟內存量(KB) RSS //该进程占用的固定內存量(KB)(驻留中页的数量) STAT //进程的状态 START //该进程被触发启动时间 TIME //该进程实际使用CPU运行的时间

其中STAT状态位常见的状态字符有 D //无法中断的休眠状态(通常 IO 的进程); R //正在运行可中在队列中可过行的; S //处于休眠状态; T //停止或被追踪; W //进入内存交换 (从内核2.6开始无效); X //死掉的进程 (基本很少见); Z //僵尸进程; < //优先级高的进程 N //优先级较低的进程 L //有些页被锁进内存; s //进程的领导者(在它之下有子进程); l //多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads); + //位于后台的进程组;

参考资料

10个重要的Linux ps命令实战

LINUX下PS -EF和PS AUX的区别及格式详解