介紹
ps命令會生成計算機上當前正在運行的進程的列表。
本指南將向您展示ps命令的更常見用法,以便您可以充分利用它。
這些附加命令有助於篩选和分頁來自ps的輸出,這通常會很長。
如何使用ps命令
ps命令自己顯示用戶在終端窗口中運行它的運行進程。
要調用ps,只需輸入以下內容:
PS
輸出將顯示包含以下信息的數據行:
- PID
- TTY
- 時間
- 命令
PID是標識正在運行的進程的進程ID。 TTY是終端類型。
它本身的ps命令非常有限。 您可能想要查看所有正在運行的進程。
要查看所有正在運行的進程,請使用以下任一命令:
ps -A
ps -e
要顯示除會話領導者以外的所有進程,請運行以下命令:
ps -d
那麼會議領導者是什麼? 當一個進程啟動其他進程時,它是所有其他進程的會話負責人。 因此,想像過程A啟動過程B和過程C.過程B啟動過程D並且過程C啟動過程E.當您列出除會話領導者之外的所有過程時,您將看到B,C,D和E但不是A.
您可以否定通過使用-N開關選擇的任何選項。 例如,如果您只想看到會話領導者運行以下命令:
ps -d -N
顯然-N與-e或-A開關一起使用時不是很明智,因為它什麼也不顯示。
如果您只想查看與此終端關聯的進程,請運行以下命令:
太平洋標準時間
如果您想使用以下命令查看所有正在運行的進程:
ps r
使用ps命令選擇特定進程
您可以使用ps命令返回特定的進程,並且有多種方法可以更改選擇條件。
例如,如果你知道進程ID,你可以簡單地使用下面的命令:
ps -p
您可以通過指定多個進程ID來選擇多個進程,如下所示:
ps -p“1234 9778”
您也可以使用逗號分隔列表來指定它們:
ps -p 1234,9778
有可能您不知道進程ID,並且通過命令進行搜索更容易。 為此,請使用以下命令:
ps -C
例如,要查看Chrome是否在運行,可以使用以下命令:
ps -C鉻
您可能會驚訝地發現,這會為每個打開的選項卡返回一個進程。
其他篩選結果的方法是按組。 您可以使用以下語法按組名稱進行搜索:
ps -G <組名>
ps --Group <組名>
例如,要找出帳戶組運行的所有進程,請輸入以下內容:
ps -G“賬戶”
ps - 組“賬戶”
您還可以通過使用小寫字母g來按組ID進行搜索而不是組名,如下所示:
ps -g
ps --group
如果您想通過會話ID列表進行搜索,請使用以下命令:
ps -s
或者使用以下內容按終端類型進行搜索。
ps -t
如果您想查找由特定用戶運行的所有進程,請嘗試以下命令:
ps U <用戶列表>
例如,要查找由gary運行的所有進程,請運行以下命令:
ps U“gary”
請注意,這顯示了憑據用於運行該命令的人員。 例如,如果我以gary身份登錄並運行上述命令,它將顯示我運行的所有命令。
如果我以Tom的身份登錄並使用sudo來運行命令,那麼上面的命令將顯示Tom的命令由gary運行而不是tom運行。
要將列表限制為真正由gary運行的進程,請使用以下命令:
ps -U“加里”
格式化ps命令輸出
默認情況下,當您使用ps命令時,您會得到相同的4列:
- PID
- TTY
- 時間
- 命令
您可以通過運行以下命令獲取完整列表:
ps -ef
如您所知,-e顯示所有進程,f或-f顯示全部細節。
返回的列如下所示:
- 用戶名
- PID
- PPID
- C
- STIME
- TTY
- 時間
- 命令
用戶標識是運行該命令的人員。 PID是命令命令的進程ID。 PPID是啟動命令的父進程。
C列顯示了一個進程所擁有的孩子的數量。 STime是該過程的開始時間。 TTY是終端,時間是運行所耗費的時間,命令是運行的命令。
通過使用以下命令可以獲得更多的列:
ps -eF
這將返回以下列:
- UID
- PID
- PPID
- C
- SZ
- RSS
- PSR
- STIME
- TTY
- 時間
- 命令
額外的列是SZ,RSS和PSR。 SZ是進程的大小,RSS是實際內存大小,PSR是指定給該命令的處理器。
您可以使用以下開關指定用戶定義的格式:
ps -e --format
可用的格式如下所示:
- %cpu - cpu利用率
- %mem - 內存百分比利用率
- args - 帶有所有參數的命令
- c - 處理器利用率
- cmd - 命令
- comm - 僅限命令名稱
- cp - CPU使用率
- cputime - CPU時間
- egid - 有效的組ID
- egroup - 有效組
- etime - 經過的時間
- euid - 有效的用戶ID
- euser - 有效的用戶
- gid - 組ID
- 組 - 組名
- pgid - 進程組ID
- pgrp - 進程組
- ppid - 父進程ID
- 開始 - 流程開始的時間
- sz - 物理頁面的大小
- thcount - 進程擁有的線程
- 時間 - 累計時間
- uid - 用戶標識
- uname - 用戶名
還有更多的選擇,但這些是最常用的選項。
要使用這些格式,請輸入以下內容:
ps -e --format =“uid uname cmd time”
你可以混合和匹配你想要的項目。
排序輸出
要對輸出進行排序,請使用以下表示法:
ps -ef --sort
排序選項的選擇如下:
- cmd - 可執行文件的名稱
- pcpu - CPU利用率
- 旗幟 - 標誌
- pgrp - 進程組ID
- cutime - 累計用戶時間
- cstime - 累計系統時間
- utime - 用戶時間
- pid - 進程ID
- ppid - 父進程ID
- 大小 - 大小
- uid - 用戶標識
- 用戶 - 用戶名
再次有更多的選項可用,但這些是最常見的選項。
示例排序命令如下所示:
ps -ef --sort用戶,pid
使用ps使用grep,越來越少的命令
正如在開始時提到的,通常使用ps和grep,less和more命令。
越來越少的命令將幫助您一次篩選一頁結果。 要使用這些命令,只需將輸出從grep輸入到它們中,如下所示:
ps -ef | 更多
ps -ef | 減
grep命令可幫助您過濾ps命令的結果。
例如:
ps -ef | grep chrome
概要
ps命令通常用於在Linux中列出進程。 您也可以使用top命令以不同的方式顯示正在運行的進程。
本文介紹了常見的開關,但有更多可用和更多的格式和排序選項。
要了解更多信息,請閱讀ps命令的Linux手冊頁。