Linux ps命令
•
Linux命令
PS,是Linux系统命令之一,是在Linux中是查看进程的命令。ps查看正处于Running的进程,ps aux查看所有的进程。
查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照。它能捕获系统在某一事件的进程状态。如果你想不断更新查看的这个状态,可以使用top命令。
进程状态
而linux的进程有5种状态
- 运行状态(正在运行或在运行队列中等待[就绪队列])
- 中断状态(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
- 不可中断状态(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
- 僵死状态(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
- 停止状态(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
状态码
PS工具标识进程的5种状态码
- D 不可中断 uninterruptible sleep (usually IO)
- R 运行 runnable (on run queue)
- S 中断 sleeping
- T 停止 traced or stopped
- Z 僵死 a defunct (”zombie”) process
ps命令支持三种使用的语法格式
- UNIX 风格,选项可以组合在一起,并且选项前必须有“-”连字符
- BSD 风格,选项可以组合在一起,但是选项前不能有“-”连字符
- GNU 风格的长选项,选项前有两个“-”连字符
这几种风格可以混用,但是可能会发生冲突。
结果显示列信息
- USER:该进程是由哪个用户产生的
- PID:运行着的命令(CMD)的进程编号
- PPID:父进程的 ID
- %CPU:该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源。
- %MEM:该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源。
- TTY:命令所运行的位置(终端)
- TIME:运行着的该命令所占用的CPU处理时间
- START:该进程的启动时间
- CMD:该进程所运行的命令
相关参数
-e 显示所有进程。
-f 全格式。
-h 不显示标题。
-l 长格式。
-w 宽输出。
a 显示终端上的所有进程,包括其他用户的进程。
r 只显示正在运行的进程。
x 显示没有控制终端的进程。
O[+|-] k1 [,[+|-] k2 [,…]] 根据SHORT KEYS、k1、k2中快捷键指定的多级排序顺序显示进程列表。
–sort X[+|-] key [,[+|-] key [,…]] 从SORT KEYS段中选一个多字母键。“+”字符是可选的,因为默认的方向就是按数字升序或者词典顺序。比如: ps -jax -sort=uid,-ppid,+pid。
–help 显示帮助信息。
–version 显示该命令的版本信息。
ps -ef 与 ps aux
Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux。这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。
ps -ef 是用标准的格式显示进程的、其格式如下:
ps aux 是用BSD的格式来显示、其格式如下: