您好,登錄后才能下訂單哦!
小編給大家分享一下Linux中ps命令有什么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
ps命令 用于報告當前系統的進程狀態。可以搭配kill指令隨時中斷、刪除不必要的程序。
報告當前系統的進程狀態
ps命令是最基本同時也是非常強大的進程查看命令,使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等,總之大部分信息都是可以通過執行該命令得到的。
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命令能夠支持的系統類型相當的多,所以選項多的離譜!
ps axo pid,comm,pcpu # 查看進程的PID、名稱以及CPU 占用率 ps aux | sort -rnk 4 # 按內存資源的使用量對進程進行排序 ps aux | sort -nk 3 # 按 CPU 資源的使用量對進程進行排序 ps -A # 顯示所有進程信息 ps -u root # 顯示指定用戶信息 ps -efL # 查看線程數 ps -e -o "%C : %p :%z : %a"|sort -k5 -nr # 查看進程并按內存使用大小排列 ps -ef # 顯示所有進程信息,連同命令行 ps -ef | grep ssh # ps 與grep 常用組合用法,查找特定進程 ps -C nginx # 通過名字或命令搜索進程 ps aux --sort=-pcpu,+pmem # CPU或者內存進行排序,-降序,+升序 ps -f --forest -C nginx # 用樹的風格顯示進程的層次關系 ps -o pid,uname,comm -C nginx # 顯示一個父進程的子進程 ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm # 重定義標簽 ps -e -o pid,comm,etime # 顯示進程運行的時間 ps -aux | grep named # 查看named進程詳細信息 ps -o command -p 91730 | sed -n 2p # 通過進程id獲取服務名稱
將目前屬于您自己這次登入的 PID 與相關信息列示出來
ps -l # UID PID PPID F CPU PRI NI SZ RSS WCHAN S ADDR TTY TIME CMD # 501 566 559 4006 0 31 0 4317620 228 - Ss 0 ttys001 0:00.05 /App...cOS/iTerm2 --server /usr/bin/login -fpl kenny /Ap...s/MacOS/iTerm2 --launch_shel # 501 592 577 4006 0 31 0 4297048 52 - S 0 ttys001 0:00.63 -zsh
F 代表這個程序的旗標 (flag), 4 代表使用者為 super user
S 代表這個程序的狀態 (STAT),關于各 STAT 的意義將在內文介紹
UID 程序被該 UID 所擁有
PID 就是這個程序的 ID !
PPID 則是其上級父程序的ID
C CPU 使用的資源百分比
PRI 這個是 Priority (優先執行序) 的縮寫,詳細后面介紹
NI 這個是 Nice 值,在下一小節我們會持續介紹
ADDR 這個是 kernel function,指出該程序在內存的那個部分。如果是個 running的程序,一般就是 “-“
SZ 使用掉的內存大小
WCHAN 目前這個程序是否正在運作當中,若為 – 表示正在運作
TTY 登入者的終端機位置
TIME 使用掉的 CPU 時間。
CMD 所下達的指令為何
在預設的情況下, ps 僅會列出與目前所在的 bash shell 有關的 PID 而已,所以, 當我使用 ps -l 的時候,只有三個 PID。
列出目前所有的正在內存當中的程序
ps aux # USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND # kenny 6155 21.3 1.7 7969944 284912 ?? S 二03下午 199:14.14 /Appl...OS/WeChat # kenny 559 20.4 0.8 4963740 138176 ?? S 二03下午 33:28.27 /Appl...S/iTerm2 # _windowserver 187 18.0 0.6 7005748 95884 ?? Ss 二03下午 288:44.97 /Syst...Light.WindowServer -daemon # kenny 1408 10.7 2.1 5838592 347348 ?? S 二03下午 138:51.63 /Appl...nts/MacOS/Google Chrome # kenny 327 5.8 0.5 5771984 79452 ?? S 二03下午 2:51.58 /Syst...pp/Contents/MacOS/Finder
USER:該 process 屬于那個使用者賬號的
PID :該 process 的號碼
%CPU:該 process 使用掉的 CPU 資源百分比
%MEM:該 process 所占用的物理內存百分比
VSZ :該 process 使用掉的虛擬內存量 (Kbytes)
RSS :該 process 占用的固定的內存量 (Kbytes)
TTY :該 process 是在那個終端機上面運作,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程序,若為 pts/0 等等的,則表示為由網絡連接進主機的程序。
STAT:該程序目前的狀態,主要的狀態有
R :該程序目前正在運作,或者是可被運作
S :該程序目前正在睡眠當中 (可說是 idle 狀態),但可被某些訊號 (signal) 喚醒。
T :該程序目前正在偵測或者是停止了
Z :該程序應該已經終止,但是其父程序卻無法正常的終止他,造成 zombie (疆尸) 程序的狀態
START:該 process 被觸發啟動的時間
TIME :該 process 實際使用 CPU 運作的時間
COMMAND:該程序的實際指令
列出類似程序樹的程序顯示
ps -axjf # USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND UID C STIME TTY # root 1 0 1 0 0 Ss ?? 10:51.90 /sbin/launchd 0 0 二03下午 ?? # root 50 1 50 0 0 Ss ?? 0:10.07 /usr/sbin/syslog 0 0 二03下午 ?? # root 51 1 51 0 0 Ss ?? 0:29.90 /usr/libexec/Use 0 0 二03下午 ??
找出與 cron 與 syslog 這兩個服務有關的 PID 號碼
ps aux | egrep '(cron|syslog)' # root 50 0.0 0.0 4305532 1284 ?? Ss 二03下午 0:10.08 /usr/sbin/syslogd # kenny 90167 0.0 0.0 4258468 184 s007 R+ 9:23下午 0:00.00 egrep (cron|syslog)
把所有進程顯示出來,并輸出到ps001.txt文件
ps -aux > ps001.txt
輸出指定的字段。
以上是“Linux中ps命令有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。