ps
命令是用於列出當前正在系統中運行的進程的快速指南。
您的計算機始終運行著大量不同的進程。
您可以使用ps
命令檢查它們:
這是當前會話中正在運行的由用戶啟動的進程列表。
這裡有幾個fish
shell實例,大多數是在編輯器內部由VS Code打開的,還有一個運行Hugo的實例,用於開發預覽網站。
這些只是分配給當前用戶的命令。要列出所有進程,我們需要向ps
傳遞一些選項。
我最常用的是ps ax
:
a
選項用於列出其他用戶的進程,而不僅僅是我們自己的進程。x
顯示未與任何終端鏈接的進程(並非通過終端使用者啟動)。
如您所見,較長的命令被截斷了。使用命令ps axww
以換行方式繼續命令列表,而不是截斷它:
我們需要兩次指定
w
以應用此設置,這不是錯別字。
您可以使用grep
和管道來搜索特定的進程,就像這樣:
ps axww | grep "VS Code"
ps
返回的列代表一些關鍵信息。
第一個信息是PID
,即進程ID。這在您想在另一個命令中引用這個進程時很重要,例如要終止它。
然後,我們有TT
,告訴我們所使用的終端ID。
然後,STAT
告訴我們進程的狀態:
I
表示空閑的進程(睡眠時間超過約20秒)
R
表示可運行的進程
S
表示睡眠的進程(睡眠時間不到約20秒)
T
表示停止的進程
U
表示不可中斷等待的進程
Z
表示死亡的進程(僵尸進程)
如果有多個字母,第二個字母表示進一步的信息,這可能非常專業。
通常會出現+
,它表示進程在其終端中處於前景。s
表示該進程是會話領導者。
TIME
告訴我們進程運行的時間。
這個命令適用於Linux、macOS、WSL以及任何具有UNIX環境的地方。