ps命令詳解

2021-09-20 17:42:16 字數 3999 閱讀 9095

ps的輸出:

user       pid %cpu %mem    vsz   rss tty      stat start   time command

root         1  0.0  0.0  41292  3844 ?        ss   jun29   0:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 21

root         2  0.0  0.0      0     0 ?        s    jun29   0:00 [kthreadd]

ps有兩種風格:bsd和unix linux可混用兩個。

ps的常用選項:

-a:顯示所有終端機下執行的程式,除了階段作業領導者之外。 

a:顯示現行終端機下的所有程式,包括其他使用者的程式。

-a:顯示所有程式。 

-c:顯示cls和pri欄位。 

c:列出程式時,顯示每個程式真正的指令名稱,而不包含路徑,選項或常駐服務的標示。 

-c《指令名稱》:指定執行指令的名稱,並列出該指令的程式的狀況。 

-d:顯示所有程式,但不包括階段作業領導者的程式。 

-e:此選項的效果和指定"a"選項相同。 

e:列出程式時,顯示每個程式所使用的環境變數。 

-f:顯示uid,ppip,c與stime欄位。 

f:用ascii字元顯示樹狀結構,表達程式間的相互關係。 

-g《群組名稱》:此選項的效果和指定"-g"選項相同,當亦能使用階段作業領導者的名稱來指定。 

g:顯示現行終端機下的所有程式,包括群組領導者的程式。 

-g《群組識別碼》:列出屬於該群組的程式的狀況,也可使用群組名稱來指定。 

h:不顯示標題列。 

-h:顯示樹狀結構,表示程式間的相互關係。 

-j或j:採用工作控制的格式顯示程式狀況。 

-l或l:採用詳細的格式來顯示程式狀況。 

l:列出欄位的相關資訊。 

-m或m:顯示所有的執行緒。

n:以數字來表示user和wchan欄位。 

-n:顯示所有的程式,除了執行ps指令終端機下的程式之外。 

-p《程式識別碼》:指定程式識別碼,並列出該程式的狀況。 

p《程式識別碼》:此選項的效果和指定"-p"選項相同,只在列**式方面稍有差異。 

r:只列出現行終端機正在執行中的程式。 

-s《階段作業》:指定階段作業的程式識別碼,並列出隸屬該階段作業的程式的狀況。 

s:採用程式訊號的格式顯示程式狀況。 

s:列出程式時,包括已中斷的子程式資料。 

-t《終端機編號》:指定終端機編號,並列出屬於該終端機的程式的狀況。 

t《終端機編號》:此選項的效果和指定"-t"選項相同,只在列**式方面稍有差異。 

-t:顯示現行終端機下的所有程式。 -u《使用者識別碼》:此選項的效果和指定"-u"選項相同。

u:以使用者為主的格式來顯示程式狀況。 

-u《使用者識別碼》:列出屬於該使用者的程式的狀況,也可使用使用者名稱來指定。 

u《使用者名稱》:列出屬於該使用者的程式的狀況。 

v:採用虛擬記憶體的格式顯示程式狀況。 

-v或v:顯示版本資訊。 

-w或w:採用寬闊的格式來顯示程式狀況。  

x:顯示所有程式,不以終端機來區分。 

x:採用舊式的linux i386登陸格式顯示程式狀況。 

-y:配合選項"-l"使用時,不顯示f(flag)字段,並以rss欄位取代addr欄位 。 

-《程式識別碼》:此選項的效果和指定"p"選項相同。 

--cols《每列字元數》:設定每列的最大字元數。 

--columns《每列字元數》:此選項的效果和指定"--cols"選項相同。 

--cumulative:此選項的效果和指定"s"選項相同。 

--deselect:此選項的效果和指定"-n"選項相同。 

--forest:此選項的效果和指定"f"選項相同。 

--headers:重複顯示標題列。 

--info:顯示排錯資訊。 

--lines《顯示列數》:設定顯示畫面的列數。 

--no-headers:此選項的效果和指定"h"選項相同,只在列**式方面稍有差異。 

--group《群組名稱》:此選項的效果和指定"-g"選項相同。 

--group《群組識別碼》:此選項的效果和指定"-g"選項相同。 

--pid《程式識別碼》:此選項的效果和指定"-p"選項相同。 

--rows《顯示列數》:此選項的效果和指定"--lines"選項相同。 

--sid《階段作業》:此選項的效果和指定"-s"選項相同。 

--tty《終端機編號》:此選項的效果和指定"-t"選項相同。 

--user《使用者名稱》:此選項的效果和指定"-u"選項相同。 

--user《使用者識別碼》:此選項的效果和指定"-u"選項相同。 

--version:此選項的效果和指定"-v"選項相同。 

--widty《每列字元數》:此選項的效果和指定"-cols"選項相同。

ps aux

ps -ef

使用"u"或者"-f"選項可以顯示程序的具體資訊。

顯示使用者程序

使用"-u"選項後跟使用者名稱來過濾所屬使用者的程序。多個使用者名稱可以用逗號分隔。

ps -f -u www-data

通過名字或者程序id顯示程序

ps -c apache2

要通過程序id顯示程序,就使用"-p"選項,並且還可以通過逗號分隔來指定多個程序id。

ps -f -p 3150,7298,6544

"-c"必須提供精確的程序名,並且它並不能通過部分名字或者萬用字元查詢。為了更靈活地搜尋程序列表,通常使用grep命令。

ps -ef | grep apache

通過cpu或者記憶體使用排序程序

想要找出那些消耗最多記憶體或者cpu的程序。排序選項會基於特定的字段或者引數來排序程序列表。

可以用'--sort'指定多個字段,並用逗號分割。除此之外,字段前面還可以跟上'-'或者'+'的字首來相應地表示遞減和遞增排序。這裡有很多的用於排序的選項,通過man頁來獲取完整的列表。

ps aux --sort=-pcpu,+pmem

顯示前5名最耗cpu的程序。

ps aux --sort=-pcpu | head -5

以樹的形式顯示程序層級

"--forest" 選項會構造乙個ascii藝術形式的程序層級檢視。

下面的命令會用apache2的程序名來搜尋並構造乙個樹來顯示具體資訊。

ps -f --forest -c apache2

不要在排序中使用樹狀顯示,因為兩者都會以不同方式影響顯示的順序。

顯示父程序的子程序

ps -o pid,uname,comm -c apache2

使用apache2主程序的pid列出了所有的apache2的子程序。

ps --ppid 2359

顯示程序的執行緒

"-l"選項會隨著程序一起顯示執行緒。它可用於顯示所有指定程序或者所有程序的執行緒。

ps -p 3150 -l

改變顯示的列

下面的命令會只顯示pid、使用者名稱、cpu、記憶體、命令列。

ps -e -o pid,uname,pcpu,pmem,comm

顯示程序執行的時間

執行的時間指的是,程序已經執行的時間。執行時間的列並沒有預設顯示,需要使用-o選項帶入。

ps -e -o pid,comm,etime

將ps轉換為實時程序檢視器

watch命令可將ps命令變成實時程序檢視器

watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15'

top/htop命令的輸出相比上面的ps命令重新整理得更頻繁。

這是因為top輸出是結合了cup使用值和記憶體使用值後的排序值。但是上面的ps命令是乙個更簡單的行為的排序,每次獲取一列(像學校的數學),因此它不會像top那樣快速更新。

ps命令詳解

平時linux程序檢視還是比較常用的,於是我研究了一下linux ps命令的使用方式,在這裡拿出來和大家分享一下,希望對大家有用。linux監控工具大全 1.ps簡介前面介紹的兩個命令 who w命令 都是用於檢視當前系統使用者的情況,下面就來看看程序的情況,這也是本章的主題。要對程序進行監測和控制...

PS命令詳解

要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需要檢視當前程序,ps命令就是最基本程序檢視命令。使用該命令可 以確定有哪些程序正在執行和執行的狀態 程序是否結束 程序有沒有殭屍 哪些程序占用了過多的資源等等.總之大部分資訊都是可以通過執行該命令得到。ps是顯示瞬間程序的狀態,並不動態連...

ps命令詳解

ps命令用於報告當前系統的程序狀態。可以搭配kill 指令隨時中斷 刪除不必要的程式。ps命令是最基本同時也是非常強大的程序檢視命令,使用該命令可以確定有哪些程序正在執行和執行的狀態 程序是否結束 程序有沒有僵死 哪些程序占用了過多的資源等等,總之大部分資訊都是可以通過執行該命令得到的。ps 選項 ...