1.ps命令因爲歷史緣由,版本比較多,主要分爲三種版本數組
1)Unix風格的版本,命令參數加單橫線。好比ps -ef網絡
2)BSD風格的版本,命令參數前不加任何橫線。好比ps aux多線程
3)GNU風格的版本,命令參數前加雙橫線。好比ps --deselect --forest //顯示全部進程,而且顯示出進程的父子關係,就是顯示出哪一個進程建立了哪些進程。ui
2.因爲ps命令較爲複雜,通常的管理員會記住某些有用的命令組合來提取有用的進程信息的參數。線程
好比說你要查看系統上運行的全部進程的一些有用的信息,Unix風格的ps -ef命令多是一個好的選擇,它會提供給你(進程建立者uid,進程pid,進程父親ppid,進程生命週期中的cpu利用率,進程啓動時間,進程在哪一個個終端上啓動,從啓動到如今使用cpu的總時間,命令的名稱),注意:TTY表明進程在哪一個終端上運行,若與終端無關,則顯示? 若爲pts/0等,則表示由網絡鏈接主機進程。附上一張ps -ef的圖片。rest
固然,BSD風格的ps也不賴,它說它也有相應的命令,也能看進程的一些有用的信息,好比ps ax能查看全部進程的粗略的信息(進程pid,進程在哪一個個終端上運行,進程的狀態,該進程從開始到如今實際使用cpu的總時間,啓動的命令),注意:許多管理員更喜歡使用BSD風格的緣由和這個STAT字段有關係,他能更詳細的輸出進程的狀態。由於它使用的是雙字符來輸出狀態,而Unix風格的STAT列是單字符的狀態。第一個字符采用了和Unix單列同樣的值(O表明正在運行;S表明在休眠;R表明可運行,正等待運行;Z表明僵化,進程已結束但父進程已不存在),第二個字符是Unix風格所沒有的,是BSD獨有的,更加詳細地說明了進程的狀態。(<:表明該進程運行在高優先級;N:表明該進程運行在低優先級;L:表明該進程有頁面鎖定在內存中;s:表明該進程是控制進程;l:小L表明該進程是多線程的;+:表明進程運行在前臺)附上一張ps ax的圖片。blog
ps ax只是顯示了部分的信息,若是不夠的話,還有它的大哥叫 ps aux能夠顯示更多的信息生命週期
比ps ax多出來的是USER列,表明啓動這個進程的用戶名稱,%CPU表明當前這一刻,cpu佔用的百分比,%MEM表明內存佔用的百分比,VSZ表明的是進程在內存中佔用的大小,單位是KB;RSS表明的是進程在未換出時佔用的物理內存。進程
3.GNU長參數類型使用的比較少,可是我比較喜歡用它來查看一下進程之間的層級關係,ps --forest --deselect能夠顯示全部進程的樹狀圖。圖片
4.ps命令的參數不少,可是絕大多數場景下,上邊列出的參數組合基本夠用,若是還須要查看更多信息,能夠查閱man手冊。