ps命令詳解

? ? ? ? 對于在linux系統(tǒng)開發(fā)的工程師來說,ps命令是經(jīng)常使用的命令,這個命令可以用來查看進程的進程id,父進程id,進程狀態(tài)等信息,但是對于ps的用法卻總感覺不是很熟悉的感覺,這里特意花時間整理了ps命令的疑點和常用方式。

? ? ? ? ?首先ps是一個有歷史的命令,在unix時期就已經(jīng)存在,后來linux系統(tǒng)也繼承了這個命令,同時其功能是一樣的,但是由于系統(tǒng)創(chuàng)建者不同,其展示風(fēng)格有差異,總共有三種風(fēng)格:

UNIX 風(fēng)格,選項可以組合在一起, 選項前必須有“-”連字符

BSD 風(fēng)格,選項可以組合在一起,但是選項前不能有“-”連字符。BSD是unix的一個分支

GNU 風(fēng)格的長選項,選項前有兩個“-”連字符。GUN計劃,后來發(fā)展出了Linux

例如 ps -ef 是unix風(fēng)格? ? 而 ps aux就是BSD風(fēng)格,

unix 風(fēng)格


BSD風(fēng)格

? ? ? ?兩種風(fēng)格顯示的選項還是有一點的差別的,但是今天的重點是了解ps命令的選項及列的內(nèi)涵,只有這樣才能在我們需要查看進程的信息時能準(zhǔn)確的獲取到而不是像以前一樣對其一知半解。

ps的-A 是顯示系統(tǒng)運行的所有進程,不管是后臺進程,還是與終端無關(guān)的進程或者是會話進程。

ps -e 這個和上面的效果是一樣。

ps -a 顯示除了會話的創(chuàng)建者(在linux這種多用戶系統(tǒng)中,每個用戶登錄就是一個會話,然后其創(chuàng)建的進程就屬于這個會話進行管理)和與終端無關(guān)的進程----終端無關(guān)的進程就是 tty那列顯示問號的?。

ps a顯示所有和終端有關(guān)的進程,就是 tty那列不為?的。(與終端有關(guān)還是無關(guān)是決定這個進程在窗口關(guān)閉后是否還能繼續(xù)執(zhí)行的關(guān)鍵,比如nginx和php-fpm這種進程就不能與終端有關(guān),需要一直在后臺運行)。

ps T 顯示當(dāng)前終端的進程,就是tty列為當(dāng)前終端值的進程。

ps x 顯示屬于當(dāng)前用戶的進程 ?等于 ps -u 用戶名。

ps -ax 這個值不存在 ?只有 ps ax 結(jié)果就是 ps -A或ps -e。

ps -d 顯示除了會話創(chuàng)建者外的所有進程。

ps -f 表示full 表示詳細(xì)內(nèi)容。

ps -H?hierarchy表是層級關(guān)系,這個不太常用,可以忽略。

ps C 表示cpu占用。

ps -o 后邊跟 format 格式。

ps? -eo pid,ppid,s(進程狀態(tài) 就是stat),cmd(運行進程的命令),tty,etime(進程運行的時長,e是elapse的縮寫),lstart(進程開始時間),uname(用戶名)。


連接了上面這些選項后 ps這個命令在日常的使用中基本算是掌握了。對于這個命令中的終端,會話等概念會在下篇文章進行講解。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容