ps命令詳解
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:重複顯示標題列。
--help:線上幫助。
--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那樣快速更新。
本文轉自ting2junshui51CTO部落格,原文連結:http://blog.51cto.com/ting2junshui/1856864 ,如需轉載請自行聯絡原作者
相關文章
- Linux PS命令詳解Linux
- JPS 命令詳細解釋
- Linux中ps命令詳解Linux
- linux ps命令使用詳解Linux
- 【AIX-PS】AIX系統ps命令詳解AI
- stat 命令家族(3)- 詳解 mpstat
- linux--ps命令詳細解說Linux
- 轉:AIX PS命令的詳解 -- 程式效能監控AI
- Linux ps命令詳解,Linux檢視程序。Linux
- Linux檢視程序命令ps和top示例詳解Linux
- Linux下 netstat ps kill 命令詳解及常用命令收集Linux
- Https詳解HTTP
- Https 詳解HTTP
- HttpServlet詳解HTTPServlet
- Dockerfile 命令詳解Docker
- tcpdump命令詳解TCP
- getsebool命令詳解
- w命令詳解
- GCC命令詳解GC
- echo命令詳解
- brctl 命令詳解
- rsync命令詳解
- echo 命令詳解
- date 命令詳解
- free 命令詳解
- NPM命令詳解NPM
- docker命令詳解Docker
- lsof命令詳解
- SVN命令詳解
- 命令模式 詳解模式
- Ethtool命令詳解
- find命令詳解
- test命令詳解
- awk命令詳解
- vmstat命令詳解
- find 命令詳解
- RMAN 命令詳解
- curl命令詳解