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