ps是linux一個管理系統進程的命令,由於ps支持的操作系統很多,所以其參數也多得嚇人。我在這裏總結了用過的一些操作。
1.ps aux
linux上進程有5種狀態:
1. 運行(正在運行或在運行隊列中等待)
2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)
3. 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷髮生)
4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放)
5. 停止(進程收到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
au(x) 輸出格式 (注意都是小寫):
-a :不與terminal有關的所有process
-u:有效使用者相關的process
x:通常與a參數一起使用,可列出較完整的信息
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程擁有者
PID: pid
%CPU: 佔用的 CPU 使用率
%MEM: 佔用的記憶體使用率
VSZ: 佔用的虛擬內存大小
RSS: 佔用的固定內存大小
TTY: 運行在那個終端機上,若愚終端機無關,則顯示?,
STAT: 該行程的狀態:
D: 不可中斷的靜止
R: 正在執行中
S: 正在睡眠中,可被某些訊號(signal)喚醒
T: 正在偵測或者停止了
Z: 不存在但暫時無法消除,即殭屍進程
W: 沒有足夠的記憶體分頁可分配
<: 高優先序的行程
N: 低優先序的行程
L: 有記憶體分頁分配並鎖在記憶體內 (即時系統或捱A I/O)
START: 行程開始時間
TIME: 執行的時間
COMMAND:所執行的指令
2.ps aux|grep test|wc -l
其中的grep是用來進行正則匹配的。grep也是linux下的一個常用命令。其參數有:
-I :忽略大小寫
-c :打印匹配的行數
-l :從多個文件中查找包含匹配項
-v :查找不包含匹配項的行
-n:打印包含匹配項的行和行標
-w或--word-regexp: 只顯示全字符合的列
wc也是linux下的一個命令,用來統計指定文件中的字節數、字數、行數, 並將統計結果顯示輸出。
參數:
- w 統計字數
- c 統計字節數
- l 統計行數
所以上面的命令將首先篩選有包含test字符的process,然後統計進程數並返回。
參考資料:
ps——http://ilinux.iteye.com/blog/180204