Ps (Unix)

在大多数类Unix操作系统中，ps程序（“process status”的简称）可以显示当前运行的进程。一个相关的Unix工具top则可以查看运行进程的实时信息。 

在Windows PowerShell中，ps是Get-Process cmdlet的预定义命令别名，它和Unix中的ps本质上是相同的。

 示例 
输出示例：
# ps
  PID TTY          TIME CMD
 7431 pts/0    00:00:00 su
 7434 pts/0    00:00:00 bash
18585 pts/0    00:00:00 ps

用户还可以利用ps命令和grep结合（参见pgrep和pkill命令）来查找一个进程的信息，例如它的进程ID：

$ # 查找`firefox-bin`的PID为2701
$ ps -A | grep firefox-bin
2701 ?        22:16:04 firefox-bin
或直接使用pgrep：

$ pgrep -l firefox-bin
2701 firefox-bin

查看以root用户运行的进程：
# ps -U root -u
USER   PID  %CPU %MEM    VSZ   RSS TT  STAT STARTED        TIME COMMAND
root     1   0.0  0.0   9436   128  -  ILs  Sun00AM     0:00.12 /sbin/init --

 分解 
 列名  内容 %CPU  进程正在使用多少个CPU %MEM  进程正在使用多少内存 ADDR  进程的内存地址 C或CP  CPU使用率和调度信息 COMMAND*  进程名，包括参数（如果有的话） NI  nice值 F  标志 PID  进程ID PPID  父进程ID PRI  进程优先级 RSS  真实内存用量 S or STAT  进程状态码 START or STIME  进程启动时间 SZ  虚拟内存用量 TIME  总CPU用量 TT或TTY  与进程相关的终端 UID或USER  进程所有者的用户名 WCHAN  进程所等待事件的内存地址
* = 通常被简写

 选项 
ps有很多选项。在支持SUS和POSIX标准的操作系统上，ps常以选项-ef运行，其中“-e”选择每一个（every）进程，“-f”指定“完整”（full）输出格式。这些系统上的另一个常见选项是-l，它指定“长”（long）输出格式。

由于历史原因，大多数源自BSD的系统无法接受SUS和POSIX的标准选项（例如，“e”或“-e”选项将显示环境变量）。在这样的系统中，ps常使用辅助非标准选项aux，其中“a”列出了一个终端上的所有进程，包括其他用户运行的，“x”列出所有没有控制终端的进程，“u”添加了一列显示每个进程的控制用户。需要注意的是，为了最大的兼容性，使用此语法时“aux”前没有“-”。此外，在aux之后添加“ww”可以显示进程的完整信息，包括所有的参数，例如“ps auxww”。

 参见 
 任务管理器
 kill
 Unix实用程序列表
 nmon — AIX和Linux操作系统的系统监视工具。
 pgrep
 pstree
 top
 lsof

 外部链接 

 Show all running processes in Linux using ps command

 In Unix, what do the output fields of the ps command mean?

Category:Unix SUS2008实用工具
Category:Unix进程和任务管理相关软件