Linux下ps -ef和ps aux的區別及格式詳解

Linux下顯示系統進程的命令ps,最常用的有ps -ef 和ps aux。這兩個到底有什麼區別呢?兩者沒太大差別,討論這個問題,要追溯到Unix系統中的兩種風格,

System V風格和BSD 風格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,兩者輸出略有不同。現在的大部分Linux系統都是可以同時使用這兩種方式的。

ps -ef 是用標準的格式顯示進程的、其格式如下

Linux下ps -ef和ps aux的區別及格式詳解

其中各列的內容意思如下

UID //用戶ID、但輸出的是用戶名

PID //進程的ID

PPID //父進程ID

C //進程佔用CPU的百分比

STIME //進程啟動到現在的時間

TTY //該進程在那個終端上運行,若與終端無關,則顯示? 若為pts/0等,則表示由網絡連接主機進程(pts/0也可以理解為虛擬終端)。

CMD //命令的名稱和參數


ps -aux 是用BSD的格式來顯示、其格式如下

Linux下ps -ef和ps aux的區別及格式詳解

同ps -ef 不同的有列有

USER //用戶名

%CPU //進程佔用的CPU百分比

%MEM //佔用內存的百分比

VSZ //該進程使用的虛擬內存量(KB)

RSS //該進程佔用的固定內存量(KB)(駐留中頁的數量)

STAT //進程的狀態

START //該進程被觸發啟動時間

TIME //該進程實際使用CPU運行的時間

其中STAT狀態位常見的狀態字符有

D //無法中斷的休眠狀態(通常 IO 的進程);

R //正在運行可中在隊列中可過行的;

S //處於休眠狀態;

T //停止

X //死掉的進程 (基本很少見);

Z //殭屍進程;

< //優先級高的進程

N //優先級較低的進程

L //有些頁被鎖進內存;

s //進程的領導者(在它之下有子進程);

l //多線程,克隆線程(使用 CLONE_THREAD, 類似 NPTL pthreads);

+ //位於後臺的進程組;


分享到:


相關文章: