linux命令详解:ps
说明
ps命令是Process Status的缩写,当程序运行在系统上时,我们称之为进程(process),我们要想清楚的知道进程的运行状态和管理进程,可以用ps这个命令来获取我们想要看到的信息。
但是由于linux系统的历史发展原因,ps命令分为三种ps命令风格:
- Unix风格:参数前加单破折线,来源于贝尔实验室开发的AT&T Unix系统
- BSD风格:参数前不加破折线,来源于加州大学伯克利分校开发的一个Unix系统
- GNU风格:参数前前面加双破折线,来源于GNU计划&Linux内核的Linux系统
语法
语法结构
ps [options]
查看帮助文档
man ps
options - Unix风格
| 参数 | 作用 |
|---|---|
| -A | 显示所有进程 |
| -a | 显示除控制进程和无终端进程外的所有进程 |
| -d | 显示除控制进程外的所有进程 |
| -e | 显示所有进程 |
| -t | 显示终端ID在ttylist列表中的进程 |
| -F | 显示更多的额外输出(相对-f参数而言) |
| -f | 显示完整格式的输出 |
| -L | 显示进程中的线程 |
| -u 用户名 | 显示该用户的进程 |
运行结果展示
运行命令
ps -ef # 显示当前所有进程的详细信息
运行结果

参数说明
| 参数 | 作用 |
|---|---|
| UID | 运行这个进程的用户(如果该用户名过长,会显示成用户id) |
| PID | 进程ID |
| PPID | 父进程ID(有时我们要干掉一个进程总是失败,这是我们要考虑是不是要干掉它的父进程) |
| C | 该进程生命周期的CPU利用率(CPU使用时间/进程运行时间*100%,单位%) |
| STIME | 进程启动该时的系统时间(进程的启动时间,时间较久显示日期,当天的显示具体时间HH:MM) |
| TTY | 进程启动时的终端设备(?表示没有终端) |
| TIME | 运行进程需要的累计CPU时间(就是到目前为止该进程使用CPU一共多久了)单位[dd]-hh:mm:ss |
| CMD | 启动进程的命令 |
options - BSD风格
| 参数 | 作用 |
|---|---|
| T | 显示与当前终端关联的所有进程 |
| a | 显示跟任意终端关联的所有进程 |
| g | 显示所有的进程,包括控制进程 |
| x | 显示所有的进程,甚至包括未分配任何终端的进程 |
| r | 仅显示运行中的进程 |
| u | 采用基于用户的格式显示 |
| U | 显示某用户ID的所有进程 |
| p | 显示指定pid的进程 |
| t | 显示在指定终端运行的进程 |
| H | 将线程按进程来显示 |
| m | 在进程后显示线程 |
| e | 显示命令使用的环境变量 |
| l | 使用长模式显示 |
运行结果展示
运行命令
ps aux # 显示当前所有进程的详细信息
运行结果

参数说明
对比Unix风格,主要多出了几个参数
| 参数 | 作用 |
|---|---|
| VSZ | 进程在内存中的大小,单位KB |
| RSS | 进程在未换出时占用的物理内存 |
| STAT | 代表当前进程状态的双字符状态码 第一个字符:S休眠 R运行 第二个字符:<高优先级进程 N低优先级进程 L有页面锁定在内存 s控制进程 l多线程进程 +前台进程 |
options - GNU风格
略
小技巧
grep过滤
ps -ef | grep 进程关键字 # 只显示包含关键字的进程
sort排序
ps aux --sort -pcpu # 按cpu降序排列
ps aux --sort -pmem # 按内存降序排列

浙公网安备 33010602011771号