每天一個 Linux 命令(41): ps 命令

發表於2017-01-20

Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統中當前執行的那些程式。ps命令列出的是當前那些程式的快照,就是執行ps命令的那個時刻的那些程式,如果想要動態的顯示程式資訊,就可以使用top命令。

要對程式進行監測和控制,首先必須要了解當前程式的情況,也就是需要檢視當前程式,而 ps 命令就是最基本同時也是非常強大的程式檢視命令。使用該命令可以確定有哪些程式正在執行和執行的狀態、程式是否結束、程式有沒有僵死、哪些程式佔用了過多的資源等等。總之大部分資訊都是可以通過執行該命令得到的。

ps 為我們提供了程式的一次性的檢視,它所提供的檢視結果並不動態連續的;如果想對程式時間監控,應該用 top 工具。

kill 命令用於殺死程式。

linux上程式有5種狀態:

1. 執行(正在執行或在執行佇列中等待)

2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到訊號)

3. 不可中斷(收到訊號不喚醒和不可執行, 程式必須等待直到有中斷髮生)

4. 僵死(程式已終止, 但程式描述符存在, 直到父程式呼叫wait4()系統呼叫後釋放)

5. 停止(程式收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU訊號後停止執行執行)

ps工具標識程式的5種狀態碼:

D 不可中斷 uninterruptible sleep (usually IO)

R 執行 runnable (on run queue)

S 中斷 sleeping

T 停止 traced or stopped

Z 僵死 a defunct (”zombie”) process

1.命令格式:

2.命令功能:

用來顯示當前程式的狀態

3.命令引數:

4.使用例項:

例項1:顯示所有程式資訊

命令:

輸出:

說明:

例項2:顯示指定使用者資訊

命令:

輸出:

說明:

例項3:顯示所有程式資訊,連同命令列

命令:

輸出:

說明:

例項4: ps 與grep 常用組合用法,查詢特定程式

命令:

輸出:

說明:

例項5:將目前屬於您自己這次登入的 PID 與相關資訊列示出來

命令:

輸出:

說明:

各相關資訊的意義:

F 代表這個程式的旗標 (flag), 4 代表使用者為 super user

S 代表這個程式的狀態 (STAT),關於各 STAT 的意義將在內文介紹

UID 程式被該 UID 所擁有

PID 就是這個程式的 ID !

PPID 則是其上級父程式的ID

C CPU 使用的資源百分比

PRI 這個是 Priority (優先執行序) 的縮寫,詳細後面介紹

NI 這個是 Nice 值,在下一小節我們會持續介紹

ADDR 這個是 kernel function,指出該程式在記憶體的那個部分。如果是個 running的程式,一般就是 “-“

SZ 使用掉的記憶體大小

WCHAN 目前這個程式是否正在運作當中,若為 – 表示正在運作

TTY 登入者的終端機位置

TIME 使用掉的 CPU 時間。

CMD 所下達的指令為何

在預設的情況下, ps 僅會列出與目前所在的 bash shell 有關的 PID 而已,所以, 當我使用 ps -l 的時候,只有三個 PID。

例項6:列出目前所有的正在記憶體當中的程式

命令:

輸出:

說明:

例項7:列出類似程式樹的程式顯示

命令:

輸出:

說明:

例項8:找出與 cron 與 syslog 這兩個服務有關的 PID 號碼

命令:

輸出:

說明:

其他例項:

1. 可以用 | 管道和 more 連線起來分頁檢視

命令:

2. 把所有程式顯示出來,並輸出到ps001.txt檔案

命令:

3. 輸出指定的欄位

命令:

輸出:

本系列文章:

每天一個 Linux 命令(1):ls命令
每天一個 Linux 命令(2):cd命令
每天一個 Linux 命令(3):pwd命令
每天一個 Linux 命令(4):mkdir命令
每天一個 Linux 命令(5):rm 命令
每天一個 Linux 命令(6):rmdir 命令
每天一個 Linux 命令(7):mv命令
每天一個 Linux 命令(8):cp 命令
每天一個 Linux 命令(9):touch 命令
每天一個 Linux 命令(10):cat 命令
每天一個 Linux 命令(11):nl 命令
每天一個 Linux 命令(12):more 命令
每天一個 Linux 命令(13):less 命令
每天一個 Linux 命令(14):head 命令
每天一個 Linux 命令(15):tail 命令
每天一個 Linux 命令(16):which命令
每天一個 Linux 命令(17):whereis 命令
每天一個 Linux 命令(18):locate 命令
每天一個 Linux 命令(19):find 命令概覽
每天一個 Linux 命令(20):find命令之exec
每天一個 Linux 命令(21):find命令之xargs
每天一個 Linux 命令(22):find 命令的引數詳解
每天一個 Linux 命令(23):Linux 目錄結構
每天一個 Linux 命令(24):Linux 檔案型別與副檔名
每天一個 Linux 命令(25):Linux 檔案屬性詳解
每天一個 Linux 命令(26):用 SecureCRT 來上傳和下載檔案
每天一個 Linux 命令(27):linux chmod 命令
每天一個 Linux 命令(28):tar 命令
每天一個 Linux 命令(29): chgrp 命令
每天一個 Linux 命令(30): chown 命令
每天一個 Linux 命令(31): /etc/group 檔案詳解
每天一個 Linux 命令(32):gzip 命令
每天一個 Linux 命令(33):df 命令
每天一個 Linux 命令(34): du 命令
每天一個 Linux 命令(35): ln 命令
每天一個 Linux 命令(36): diff 命令
每天一個 Linux 命令(37): date 命令
每天一個 Linux 命令(38): cal 命令
每天一個 Linux 命令(39): grep 命令
每天一個 Linux 命令(40): wc 命令

相關文章