pgrep#
pgrep 是包含在 procps-ng 內的行程搜尋工具
pgrep 是 Linux 系統中用於根據名稱或其他屬性(如使用者、群組)來搜尋行程 PID 的工具。它會掃描當前運行的行程,並將符合條件的行程 ID (PID) 輸出到標準輸出。與
ps aux | grep相比,pgrep更加簡潔且適合在 Shell 腳本中使用,因為它直接返回 PID,無需額外的字串處理。
Install#
pgrep 包含在 procps-ng 套件內,絕大多數 Linux 發行版皆預設安裝。
$ sudo apt install procpsSetting in up#
Operate#
pgrep [options] [pattern]
| 參數 | 範例指令 | 說明 |
|---|---|---|
-l | pgrep -l ssh | 顯示名稱。除了輸出 PID,同時顯示對應的行程名稱。 |
-a | pgrep -a python | 顯示完整指令。顯示 PID 及其完整的啟動參數。 |
-u | pgrep -u root | 特定使用者。僅列出屬於指定使用者(如 root)的行程 PID。 |
-f | pgrep -f "script.py" | 完整比對。搜尋範圍包含整個指令列 (Command Line),而不僅限於行程名。 |
-n | pgrep -n nginx | 最新行程。僅返回最近一個被啟動的符合行程。 |
-o | pgrep -o nginx | 最舊行程。僅返回最早被啟動的符合行程。 |
-c | pgrep -c ssh | 統計數量。不列出 PID,僅輸出符合條件的行程總數。 |
-x | pgrep -x ssh | 精確匹配。行程名稱必須完全符合搜尋關鍵字。 |
| 屬性名稱 | 功能 | 詳細解釋 |
|---|---|---|
Pattern | 正則表達式 | pgrep 支援使用正規表示法來篩選行程名稱。 |
EUID/UID | 使用者過濾 | 篩選特定使用者擁有的行程。 |
PPID | 父行程 ID | 搜尋特定父行程下的所有子行程。 |
Terminal | 終端機過濾 | 根據行程所在的 TTY 進行篩選。 |
Delimiter | 輸出分隔符 | 使用 -d 參數可以自定義多個 PID 之間的分隔符號(如逗號)。 |
Reference#
Official docs: