linux下顯示系統程序的命令ps,最常用的有ps -ef 和ps aux。這兩個到底有什麼區別呢?兩者沒太大差別,討論這個問題,要追溯到unix系統中的兩種風格,system v風格和bsd 風格,ps aux最初用到unix style中,而ps -ef被用在system v style中,兩者輸出略有不同。現在的大部分linux系統都是可以同時使用這兩種方式的。
ps -ef 是用標準的格式顯示程序的、其格式如下
其中各列的內容意思如下
uid //使用者id、但輸出的是使用者名稱
pid //程序的id
ppid //父程序id
c //程序占用cpu的百分比
stime //程序啟動到現在的時間
tty //該程序在那個終端上執行,若與終端無關,則顯示? 若為pts/0等,則表示由網路連線主機程序。
cmd //命令的名稱和引數
ps aux 是用bsd的格式來顯示、其格式如下
同ps -ef不同的有列有
user //使用者名稱
%cpu //程序占用的cpu百分比
%mem //占用記憶體的百分比
vsz //該程序使用的虛擬記憶體量(kb)
rss //該程序占用的固定記憶體量(kb)(駐留中頁的數量)
stat //程序的狀態
start //該程序被觸發啟動時間
time //該程序實際使用cpu執行的時間
其中stat狀態位常見的狀態字元有
d //無法中斷的休眠狀態(通常 io 的程序);
r //正在執行可中在佇列中可過行的;
s //處於休眠狀態;
t //停止或被追蹤;
w //進入記憶體交換 (從核心2.6開始無效);
x //死掉的程序 (基本很少見);
z //殭屍程序;
n //優先順序較低的程序
l //有些頁被鎖進記憶體;
s //程序的領導者(在它之下有子程序);
l //多執行緒,轉殖執行緒(使用 clone_thread, 類似 nptl pthreads);
+ //位於後台的程序組;
ps [選項]
下面對命令選項進行說明:
-e 顯示所有程序。
-f 全格式。
-h 不顯示標題。
-l 長格式。
-w 寬輸出。
a 顯示終端上的所有程序,包括其他使用者的程序。
r 只顯示正在執行的程序。
u 以使用者為主的格式來顯示程式狀況。
x 顯示所有程式,不以終端機來區分。
ps -ef 顯示出的結果:
1.uid 使用者id
2.pid 程序id
3.ppid 父程序id
4.c cpu佔用率
5.stime 開始時間
6.tty 開始此程序的tty----終端裝置
7.time 此程序執行的總時間
8.cmd 命令名
ps aux和ps ef的區別
ps aux 是以bsd方式顯示 ps ef 是以system v方式顯示,該種方式比bsd方式顯示的多一重要項 具體哪項忘了 ps aux的輸出 user pid cpu mem vsz rss tty stat start time command ps ef的輸出 uid pid ppid c...
ps aux指令詳解
linux上程序有5種狀態 1.執行 正在執行或在執行佇列中等待 2.中斷 休眠中,受阻,在等待某個條件的形成或接受到訊號 3.不可中斷 收到訊號不喚醒和不可執行,程序必須等待直到有中斷發生 4.僵死 程序已終止,但程序描述符存在,直到父程序呼叫wait4 系統呼叫後釋放 5.停止 程序收到sigs...
ps aux指令詳解
linux上程序有5種狀態 1.執行 正在執行或在執行佇列中等待 2.中斷 休眠中,受阻,在等待某個條件的形成或接受到訊號 3.不可中斷 收到訊號不喚醒和不可執行,程序必須等待直到有中斷發生 4.僵死 程序已終止,但程序描述符存在,直到父程序呼叫wait4 系統呼叫後釋放 5.停止 程序收到sigs...