前言
大家好,我是 god23bin。歡迎來到《一分鐘學一個 Linux 命令》系列,每天只需一分鐘,記住一個 Linux 命令不成問題。今天要說的是 ps
命令。
什么是 ps 命令?
ps
的英文全稱是 process status
,意思是進程狀態(tài)。
ps
命令是一個常用的 Linux 命令,用于查看當前系統(tǒng)中運行的進程信息。它提供了關(guān)于進程的各種詳細信息,如進程 ID(PID)、進程狀態(tài)、CPU 使用情況、內(nèi)存占用、運行時間等。
如何使用 ps 命令?
ps
命令的基本語法如下:
ps [選項參數(shù)]
可以通過添加不同的選項來獲取不同類型的進程信息。
直接輸入 ps
,顯示當前進程:
ps
輸出結(jié)果包含 4 列信息:PID、TTY、TIME、CMD
- PID:(Process ID)唯一的進程 ID
- TTY:(Teletypewriter)它指的是終端類型或終端設備,用于用戶與計算機進行交互的輸入輸出設備,例如終端窗口或控制臺。
- TIME:進程運行過程中占用 CPU 的總時間(以分鐘和秒為單位),簡單理解就是 CPU 運行這個進程消耗的時間。
- CMD:啟動進程的命令的名稱
有時候當我們執(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 只是終端的索引,當開啟多個窗口時,將遞增下去。
現(xiàn)在我們就可以在終端 0 看到終端 1 的進程了(man 命令和 less 命令的進程)
常用選項參數(shù)
以下是一些常用的 ps
命令選項參數(shù):
-
-e
:(every)顯示所有進程,而不僅僅是當前用戶的進程 -
-u
:(user)顯示面向用戶的進程的詳細信息,如進程所有者、CPU 使用率、內(nèi)存使用率等 -
-f
:(full-format)以全格式的列表顯示進程的信息,包括進程之間的層級關(guān)系 -
-p
:(pid)查找具有指定進程 ID 的進程 -
-C
:(Command)查找具有指定命令名稱的進程 -
-aux
:以詳細格式顯示所有正在運行的進程,其中x
指的是在沒有控制終端的情況下列出進程,這些顯示的主要是啟動并運行在后臺的進程
例子
- 顯示所有進程信息:
ps -e
這將顯示所有進程的信息,無論是當前用戶的還是其他用戶的。
- 顯示進程的詳細信息:
ps -u
該命令將顯示進程的詳細信息,包括進程所有者、CPU 使用率、內(nèi)存使用率等。
可以看到輸出更多列了,每列的意思是這樣的:
- USER:進程所有者的用戶名
- PID:進程的唯一標識符,即進程 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)父進程的標識符
- 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
命令的使用,相信你通過這一分鐘的學習已經(jīng)掌握了,這是個很常用的命令,它有很多選項,但實際上,我們平常一般只用到 ps -aux
或者 ps -ef
來查看相關(guān)的正在運行的進程信息,或者當某些情況下想要找到某個進程,定位某個進程,就會使用 ps -ef | grep 進程名或者命令名
來進行匹配定位。
以上就是 ps
命令的基本內(nèi)容,希望本文能夠幫助大家更好地理解和應用 ps
命令。如果你對其他 Linux 命令也感興趣,敬請期待我后續(xù)的文章。謝謝大家的閱讀!
最后的最后
希望各位屏幕前的靚仔靚女們給個三連!你輕輕地點了個贊,那將在我的心里世界增添一顆明亮而耀眼的星!文章來源:http://www.zghlxwxcb.cn/news/detail-489123.html
咱們下期再見!文章來源地址http://www.zghlxwxcb.cn/news/detail-489123.html
到了這里,關(guān)于一分鐘學一個 Linux 命令 - ps的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!