在大多數類Unix操作系統中,ps程序(「process status」的簡稱)可以顯示當前運行的進程。一個相關的Unix工具top則可以查看運行進程的實時信息。

執行ps -u後的截圖

Windows PowerShell中,psGet-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結合(參見pgreppkill命令)來查找一個進程的信息,例如它的進程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有很多選項。在支持SUSPOSIX標準的操作系統上,ps常以選項-ef運行,其中「-e」選擇每一個(every)進程,「-f」指定「完整」(full)輸出格式。這些系統上的另一個常見選項是-l,它指定「長」(long)輸出格式。

由於歷史原因,大多數源自BSD的系統無法接受SUS和POSIX的標準選項(例如,「e」或「-e」選項將顯示環境變量)。在這樣的系統中,ps常使用輔助非標準選項aux,其中「a」列出了一個終端上的所有進程,包括其他用戶運行的,「x」列出所有沒有控制終端的進程,「u」添加了一列顯示每個進程的控制用戶。需要注意的是,為了最大的兼容性,使用此語法時「aux」前沒有「-」。此外,在aux之後添加「ww」可以顯示進程的完整信息,包括所有的參數,例如「ps auxww」。

參見

外部連結