ps(process status)，用于列出系统中运行的进程。

```
ps [options] 	# 显示活动的进程
```

#### 选项

选项可能有3种：

- UNIX的选项，可以成组，必须加一个破折号
- BSD的选项，可以成组，不允许有破折号
- GNU长选项，不能成组，带有两个破折号

##### 简单进程选择

```
a		# 列出当前终端(tty)的所有进程，与x联用列出所有进程
x		# 列出用户拥有的所有进程，与a联用列出所有进程

-A或-e	# 列出全部进程  
-a		# 列出终端的全部进程，但不包括session leaders  
-d		# 列出全部进程，但不包括session leaders 
-N, --deselect	# 选择不满足条件的所有进程(取消选择)
```

##### 通过列表选择进程

```
-g, --group <grplist>	# 通过有效组ID(EGID)或名称来选择进程
-G, --Group <grplist>	# 通过真实组ID(RGID)或名称来选择进程
p, -p, --pid <pidlist>	# 通过进程ID选择进程
U, -u, --user <userlist>	# 通过有效用户ID(EUID)或名称来选择进程。
-U, --User <userlist>		# 通过真实用户ID(RUID)或名称来选择进程。
```



##### 输出格式控制

```
u		# 以面向用户的格式显示
o		# 等价于-o或--format
s		# 显示信号格式
v		# 显示虚拟内存格式

-f		# 显示全部格式的列表。通过与其它选项联用。
-F		# 比-f显示更多的信息
-j		# 作业格式
-l		# 长格式，常与-y一起使用
-o, --format <fmt>	# 用户自定义格式
-y		# 不显示flags，显示rss来取代addr。只能与-l联用
```



##### output modifiers

```
e	# 命令之后显示环境
h	# 不显示header

-H	# 显示进程的层次(以树的方式)
```



##### 显示线程

```
H		# 像显示进程一样显示线程
m, -m	# 在进程后显示线程
```



##### 其它信息

#### 进程状态码

```
D	不可中断的睡眠(一般是在进行IO)
R	运行中或可运行(在运行队列上)
S	可中断的睡眠(在等待一个事件)
T	被作业控制信号停止
t	在tracing的时候被调试器停止
W	分页(2.6内核之后已无效)
X	死亡(应该再也看不到了)
Z	僵尸进程
```



#### 示例

```
# 查看所有进程(标准语法)
ps -e
ps -ef
ps -eF
ps -ely

# 查看所有进程(BSD语法)
ps ax
ps axu
```