Linux下顯示系統(tǒng)進(jìn)程的命令ps,最常用的有ps -ef 和ps aux。這兩個(gè)到底有什么區(qū)別呢??jī)烧邲]太大差別,討論這個(gè)問題,要追溯到Unix系統(tǒng)中的兩種風(fēng)格,System V風(fēng)格和BSD 風(fēng)格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,兩者輸出略有不同?,F(xiàn)在的大部分Linux系統(tǒng)都是可以同時(shí)使用這兩種方式的。
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的重慶網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
ps -ef 是用標(biāo)準(zhǔn)的格式顯示進(jìn)程的、其格式如下:?
其中各列的內(nèi)容意思如下?
UID //用戶ID、但輸出的是用戶名?
PID //進(jìn)程的ID?
PPID //父進(jìn)程ID?
C //進(jìn)程占用CPU的百分比?
STIME //進(jìn)程啟動(dòng)到現(xiàn)在的時(shí)間?
TTY //該進(jìn)程在那個(gè)終端上運(yùn)行,若與終端無(wú)關(guān),則顯示? 若為pts/0等,則表示由網(wǎng)絡(luò)連接主機(jī)進(jìn)程。?
CMD //命令的名稱和參數(shù)
ps aux 是用BSD的格式來(lái)顯示、其格式如下:?
同ps -ef 不同的有列有?
USER //用戶名?
%CPU //進(jìn)程占用的CPU百分比?
%MEM //占用內(nèi)存的百分比?
VSZ //該進(jìn)程使用的虛擬內(nèi)存量(KB)?
RSS //該進(jìn)程占用的固定內(nèi)存量(KB)(駐留中頁(yè)的數(shù)量)?
STAT //進(jìn)程的狀態(tài)?
START //該進(jìn)程被觸發(fā)啟動(dòng)時(shí)間?
TIME //該進(jìn)程實(shí)際使用CPU運(yùn)行的時(shí)間
其中STAT狀態(tài)位常見的狀態(tài)字符有?
D //無(wú)法中斷的休眠狀態(tài)(通常 IO 的進(jìn)程);?uninterruptible sleep (usually IO)不可中斷?
R //正在運(yùn)行可中在隊(duì)列中可過(guò)行的;?
S //處于休眠狀態(tài);?
T //停止或被追蹤;?traced or stopped?
W //進(jìn)入內(nèi)存交換 (從內(nèi)核2.6開始無(wú)效);?
X //死掉的進(jìn)程 (基本很少見);?
Z //僵尸進(jìn)程;??a defunct (”zombie”) process
//優(yōu)先級(jí)高的進(jìn)程?
N //優(yōu)先級(jí)較低的進(jìn)程?
L //有些頁(yè)被鎖進(jìn)內(nèi)存;?
s //進(jìn)程的領(lǐng)導(dǎo)者(在它之下有子進(jìn)程);?
l //多線程,克隆線程(使用 CLONE_THREAD, 類似 NPTL pthreads);?
+ //位于后臺(tái)的進(jìn)程組;
查看全格式、風(fēng)格不同。
1、ps-ef用于查看全格式的全部進(jìn)程,ps-aux也是用于查看進(jìn)程,其中“ps”是在Linux中是查看進(jìn)程的命令,“-e”參數(shù)代表顯示所有進(jìn)程,“-f”參數(shù)代表全格式。
2、aux是BSD風(fēng)格,顯示的項(xiàng)目有:USER,PID,CPU,MEM,VSZ、RSS,TTY,STAT,START,TIME,COMMAND,而-ef是SystemV風(fēng)格,顯示的項(xiàng)目有:UID,PID,PPID,C,STIME,TTY,TIME,CMD。
他們其實(shí)結(jié)果信息都差不多只是輸出的格式有點(diǎn)不一樣。他們其實(shí)是unix的兩種風(fēng)格,aux用于unix bsd style中,而ef用于system v style里面。
ps命令用于獲取有關(guān)在Linux,Unix和BSD系統(tǒng)上運(yùn)行的進(jìn)程的詳細(xì)信息。 ps有一些流行的選項(xiàng)和用例,其中一個(gè)是aux選項(xiàng)。
ps命令的默認(rèn)行為是僅列出當(dāng)前用戶進(jìn)程。 所有其他用戶擁有的進(jìn)程將不會(huì)顯示。?a選項(xiàng)也會(huì)打印所有其他用戶進(jìn)程。?《Linux就該這么學(xué)》
關(guān)于顯示流程信息的默認(rèn)行為不會(huì)打印流程的所有者。 但是在大多數(shù)情況下,流程所有者數(shù)據(jù)將非常有幫助。 因此,我們可以使用u選項(xiàng)來(lái)顯示進(jìn)程所有者。
ps默認(rèn)情況下僅顯示終端連接過(guò)程。 如果要顯示其他未連接到終端的進(jìn)程,可以使用x選項(xiàng)。
#?a 選項(xiàng)也會(huì)打印所有其他用戶進(jìn)程。
# u?顯示進(jìn)程所有者。
#?x?顯示其他未連接到終端的進(jìn)程
l題主你好,
ps-aux簡(jiǎn)單來(lái)說(shuō)就是回顯所有進(jìn)程的信息;
grep?sshd?表示使用grep查找包含sshd的行;
將這兩個(gè)命令用管道符連起來(lái)表示:
在ps?-aux回顯的所有進(jìn)程信息中查找包含sshd的行并顯示在終端里.
-------------------------
linux系統(tǒng)中, 正常情況下, 每個(gè)程序啟動(dòng)后, 在進(jìn)程列表中都能看到相對(duì)應(yīng)的信息, 而對(duì)系統(tǒng)中進(jìn)程信息的查看就是通過(guò)ps命令: 下面是我系統(tǒng)中ps -aux顯示的進(jìn)程信息的一部分:
可以看到進(jìn)程信息很多, 如果系統(tǒng)里面運(yùn)行的程序多了,可能會(huì)有上百行, 甚至更多, 此時(shí)我們只想看包含字符串sshd的行,則可以直接使用, ps -aux | grep sshd, 我系統(tǒng)上恰好就有sshd這個(gè)進(jìn)程, 看下測(cè)試截圖:
寫在最后, 說(shuō)簡(jiǎn)單些, grep命令就相同于一個(gè)過(guò)濾器, 從眾多行中將符合條件的行給挑出來(lái).
希望可以幫到題主,?歡迎追問