Linux命令之ps命令使用詳解
什么是 ps 命令?
ps
的英文全稱是 process status
,意思是進(jìn)程狀態(tài)。
ps
命令是一個(gè)常用的 Linux 命令,用于查看當(dāng)前系統(tǒng)中運(yùn)行的進(jìn)程信息。它提供了關(guān)于進(jìn)程的各種詳細(xì)信息,如進(jìn)程 ID(PID)、進(jìn)程狀態(tài)、CPU 使用情況、內(nèi)存占用、運(yùn)行時(shí)間等。
如何使用 ps 命令?
ps
命令的基本語法如下:
ps [選項(xiàng)參數(shù)]
可以通過添加不同的選項(xiàng)來獲取不同類型的進(jìn)程信息。
直接輸入 ps
,顯示當(dāng)前進(jìn)程:
ps
輸出結(jié)果包含 4 列信息:PID、TTY、TIME、CMD
- PID:(Process ID)唯一的進(jìn)程 ID
- TTY:(Teletypewriter)它指的是終端類型或終端設(shè)備,用于用戶與計(jì)算機(jī)進(jìn)行交互的輸入輸出設(shè)備,例如終端窗口或控制臺(tái)。
- TIME:進(jìn)程運(yùn)行過程中占用 CPU 的總時(shí)間(以分鐘和秒為單位),簡單理解就是 CPU 運(yùn)行這個(gè)進(jìn)程消耗的時(shí)間。
- CMD:啟動(dòng)進(jìn)程的命令的名稱
有時(shí)候當(dāng)我們執(zhí)行 ps
命令時(shí),TIME 顯示為 00:00:00
。這意味著該進(jìn)程尚未使用 CPU ,所以沒有 CPU 執(zhí)行的總時(shí)間。
對(duì)于上面的 bash
,就是這種情況,因?yàn)?bash
只是其他需要借助 bash
運(yùn)行的進(jìn)程的父進(jìn)程,所以它本身并沒有使用 CPU,也就沒有 CPU 執(zhí)行時(shí)間了。
上面的輸出實(shí)際上不是很有用,因?yàn)樗男畔⒉欢?。一般我們都是加上參?shù)的。
舉例說明
以下是一些常用的 ps
命令示例:
- 顯示所有正在運(yùn)行的進(jìn)程:
ps -e
該命令等價(jià)于 ps -A
,這里的 e
和 A
分別是 every
和 all
的意思,所以等價(jià)。
- 顯示與終端無關(guān)的所有進(jìn)程:
我們打開一個(gè)新的終端,在新的終端中輸入 man ps
,接著我們回到原來的終端,輸入以下命令:
ps -a
輸出顯示:
PID TTY TIME CMD
23290 pts/1 00:00:00 man
23301 pts/1 00:00:00 less
23324 pts/0 00:00:00 ps
注意:
pst/1
表示一個(gè)偽終端(pseudo-terminal),同理pst/0
也是,0 和 1 只是終端的索引,當(dāng)開啟多個(gè)窗口時(shí),將遞增下去。
現(xiàn)在我們就可以在終端 0 看到終端 1 的進(jìn)程了(man 命令和 less 命令的進(jìn)程)
常用選項(xiàng)參數(shù)
以下是一些常用的 ps
命令選項(xiàng)參數(shù):
-e
:(every)顯示所有進(jìn)程,而不僅僅是當(dāng)前用戶的進(jìn)程-u
:(user)顯示面向用戶的進(jìn)程的詳細(xì)信息,如進(jìn)程所有者、CPU 使用率、內(nèi)存使用率等-f
:(full-format)以全格式的列表顯示進(jìn)程的信息,包括進(jìn)程之間的層級(jí)關(guān)系-p
:(pid)查找具有指定進(jìn)程 ID 的進(jìn)程-C
:(Command)查找具有指定命令名稱的進(jìn)程-aux
:以詳細(xì)格式顯示所有正在運(yùn)行的進(jìn)程,其中x
指的是在沒有控制終端的情況下列出進(jìn)程,這些顯示的主要是啟動(dòng)并運(yùn)行在后臺(tái)的進(jìn)程
例子
- 顯示所有進(jìn)程信息:
ps -e
這將顯示所有進(jìn)程的信息,無論是當(dāng)前用戶的還是其他用戶的。
- 顯示進(jìn)程的詳細(xì)信息:
ps -u
該命令將顯示進(jìn)程的詳細(xì)信息,包括進(jìn)程所有者、CPU 使用率、內(nèi)存使用率等。
可以看到輸出更多列了,每列的意思是這樣的:
- USER:進(jìn)程所有者的用戶名
- PID:進(jìn)程的唯一標(biāo)識(shí)符,即進(jìn)程 ID
- %CPU:進(jìn)程使用的 CPU 資源的百分比
- %MEM:進(jìn)程使用的內(nèi)存資源的百分比
- VSZ:(Virtual Memory Size)進(jìn)程的虛擬內(nèi)存大小(以 KB 為單位)
- RSS:(Resident Set Size)進(jìn)程占用的物理內(nèi)存大?。ㄒ?KB 為單位)
- TTY:進(jìn)程所關(guān)聯(lián)的終端
- STAT:進(jìn)程的狀態(tài)(例如,R 表示運(yùn)行,S 表示睡眠,Z 表示僵尸(Zombie)等)
- START:進(jìn)程啟動(dòng)的時(shí)間
- TIME:進(jìn)程運(yùn)行過程中占用 CPU 的總時(shí)間
- COMMAND:啟動(dòng)進(jìn)程的命令名稱
- 顯示進(jìn)程之間的層級(jí)關(guān)系:
ps -f
- UID:進(jìn)程所有者的用戶 ID
- PID:進(jìn)程的唯一 ID
- PPID:(Parent Process ID)父進(jìn)程的標(biāo)識(shí)符
- C:與
%CPU
的意思相同,進(jìn)程使用的 CPU 資源的百分比,或者說進(jìn)程的 CPU 使用率 - STIME:與
START
的意思相同,進(jìn)程啟動(dòng)的時(shí)間 - TTY:與進(jìn)程相關(guān)聯(lián)的終端
- TIME:進(jìn)程運(yùn)行過程中占用 CPU 的總時(shí)間
- CMD:啟動(dòng)進(jìn)程的命令名稱
我們可以通過 -ef
來查看更多的進(jìn)程的信息:
ps -ef
- 查找具有指定進(jìn)程 ID 的進(jìn)程:
ps -p PID
將 PID
替換為要查找的進(jìn)程的實(shí)際進(jìn)程 ID。這將顯示具有指定進(jìn)程 ID 的進(jìn)程的信息。
比如現(xiàn)在我知道了一個(gè)進(jìn)程的 PID 是 1333
,想看詳細(xì)信息,那么可以輸入:
ps -p 1333 -f
- 查找具有指定命令名稱的進(jìn)程:
ps -C command_name
將 command_name
替換為要查找的進(jìn)程的命令名稱。這將顯示具有指定命令名稱的進(jìn)程的信息。
ps 與其他命令一起使用
ps 可以通過管道符 |
和其他命令結(jié)合使用。
比如要將 ps
命令的輸出,將這些輸出通過管道交給 grep
命令進(jìn)行匹配,找到我們想要的進(jìn)程,起到一個(gè)過濾輸出顯示結(jié)果的作用,比如像找到屬于 root
用戶的進(jìn)程,就可以輸入:
ps -ef | grep root
想找到 bash
命令的進(jìn)程,那么就可以輸入:
ps -ef | grep bash
總結(jié)
ps
命令的使用,相信你通過這一分鐘的學(xué)習(xí)已經(jīng)掌握了,這是個(gè)很常用的命令,它有很多選項(xiàng),但實(shí)際上,我們平常一般只用到 ps -aux
或者 ps -ef
來查看相關(guān)的正在運(yùn)行的進(jìn)程信息,或者當(dāng)某些情況下想要找到某個(gè)進(jìn)程,定位某個(gè)進(jìn)程,就會(huì)使用 ps -ef | grep 進(jìn)程名或者命令名
來進(jìn)行匹配定位。
以上就是 ps
命令的基本內(nèi)容,希望本文能夠幫助大家更好地理解和應(yīng)用 mv
和 cp
命令。如果你對(duì)其他 Linux 命令也感興趣,敬請(qǐng)期待我后續(xù)的文章。謝謝大家的閱讀!
以上就是Linux命令之ps命令使用詳解的詳細(xì)內(nèi)容,更多關(guān)于Linux ps命令的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
linux下監(jiān)視進(jìn)程 崩潰掛掉后自動(dòng)重啟的shell腳本
如何保證服務(wù)一直運(yùn)行?如何保證即使服務(wù)掛掉了也能自動(dòng)重啟?在寫服務(wù)程序時(shí)經(jīng)常會(huì)碰到這樣的問題。在Linux系統(tǒng)中,強(qiáng)大的shell就可以很靈活的處理這樣的事務(wù)2013-06-06Shell腳本查看網(wǎng)卡實(shí)時(shí)流量
這篇文章主要介紹了Shell腳本查看網(wǎng)卡實(shí)時(shí)流量,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-12-12