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 選項 ...