shell中的ps命令詳解

2021-08-01 10:49:42 字數 3492 閱讀 8867

linux中的ps命令是process status的縮寫。ps命令用來列出系統中當前執行的那些程序。ps命令列出的是當前那些程序的快照,就是執行ps命令的那個時刻的那些程序,如果想要動態的顯示程序資訊,就可以使用top命令。要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需要檢視當前程序,而 ps 命令就是最基本同時也是非常強大的程序檢視命令。使用該命令可以確定有哪些程序正在執行和執行的狀態、程序是否結束、程序有沒有僵死、哪些程序占用了過多的資源等等。總之大部分資訊都是可以通過執行該命令得到的。

對系統中程序進行監測控制,檢視狀態,記憶體,cpu的使用情況,使用命令:/bin/ps

(1) ps :是顯示瞬間程序的狀態,並不動態連續;

(2) top:如果想對程序執行時間監控,應該用 top 命令;

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

名稱:ps

使用許可權:所有使用者

使用方式:ps [options] [--help]

說明:顯示瞬間行程 (process) 的動態

引數:ps的引數非常多, 在此僅列出幾個常用的引數並大略介紹含義

-a 列出所有的程序

-w 顯示加寬可以顯示較多的資訊

-au 顯示較詳細的資訊

-aux 顯示所有包含其他使用者的行程

(方便檢視系統程序)

1)ps a 顯示現行終端機下的所有程式,包括其他使用者的程式。

2)ps -a 顯示所有程序。

3)ps c 列出程式時,顯示每個程式真正的指令名稱,而不包含路徑,引數或常駐服務的標示。

4)ps -e 此引數的效果和指定"a"引數相同。

5)ps e 列出程式時,顯示每個程式所使用的環境變數。

6)ps f 用ascii字元顯示樹狀結構,表達程式間的相互關係。

7)ps -h 顯示樹狀結構,表示程式間的相互關係。

8)ps -n 顯示所有的程式,除了執行ps指令終端機下的程式之外。

9)ps s 採用程式訊號的格式顯示程式狀況。

10)ps s 列出程式時,包括已中斷的子程式資料。

11)ps -t《終端機編號》  指定終端機編號,並列出屬於該終端機的程式的狀況。

12)ps u  以使用者為主的格式來顯示程式狀況。

13)ps x  顯示所有程式,不以終端機來區分。

最常用的方法是ps -aux,然後再利用乙個管道符號導向到grep去查詢特定的程序,然後再對特定的程序進行操作。

ps常用引數舉例:

1,基本ps使用:

結果缺省會顯示4列資訊。

pid: 執行著的命令(cmd)的程序編號

tty: 命令所執行的位置(終端)

time: 執行著的該命令所占用的cpu處理時間

cmd: 該程序所執行的命令

這些資訊在顯示時未排序。

2,列出目前所有的正在記憶體當中的程式。也許你希望把結果按照 cpu 或者記憶體用量來篩選,這樣你就找到哪個程序占用了你的資源。要做到這一點,我們可以使用 

aux 引數

,來顯示全面的資訊:

head標頭:

user 使用者名稱

uid 使用者id(user id)

pid 程序id(process id)

ppid 父程序的程序id(parent process id)

sid 會話id(session id)

%cpu 程序的cpu佔用率

%mem 程序的記憶體佔用率

vsz 程序所使用的虛存的大小(virtual size)

rss 程序使用的駐留集大小或者是實際記憶體的大小,kbytes位元組。

tty 與程序關聯的終端(tty)

stat 程序的狀態:程序狀態使用字元表示的(stat的狀態碼)

r 執行 runnable (on run queue) 正在執行或在執行佇列中等待。

s 睡眠 sleeping 休眠中, 受阻, 在等待某個條件的形成或接受到訊號。

i 空閒 idle

z 僵死 zombie(a defunct process) 程序已終止, 但程序描述符存在, 直到父程序呼叫wait4()系統呼叫後釋放。

d 不可中斷 uninterruptible sleep (ususally io) 收到訊號不喚醒和不可執行, 程序必須等待直到有中斷發生。

t 終止 terminate 程序收到sigstop, sigstp, sigtin, sigtou訊號後停止執行執行。

p 等待交換頁

w 無駐留頁 has no resident pages 沒有足夠的記憶體分頁可分配。

x 死掉的程序

< 高優先順序程序 高優先序的程序

n 低優先 級程序 低優先序的程序

l 記憶體鎖頁 lock 有記憶體分頁分配並縮在記憶體內

s 程序的領導者(在它之下有子程序);

l 多程序的(使用 clone_thread, 類似 nptl pthreads)

+ 位於後台的程序組

start 程序啟動時間和日期

time 程序使用的總cpu時間

command 正在執行的命令列命令

ni 優先順序(nice)

pri 程序優先順序編號(priority)

wchan 程序正在睡眠的核心函式名稱;該函式的名稱是從/root/system.map檔案中獲得的。

flags 與程序相關的數字標識

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

命令:ps -aux |more

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

命令:ps -aux > ps001.txt

6. 輸出指定的字段

命令:ps -o pid,ppid,pgrp,session,tpgid,comm

7,根據 

cpu 使用

來公升序排序

$ ps -aux --sort -pcpu | less

8,根據 記憶體使用 來公升序排序

$ ps -aux --sort -pmem | less

9,樹形顯示程序

$ pstree

10,檢視特定使用者程序

在需要檢視特定使用者程序的情況下,我們可以使用 

-u引數。比如我們要檢視使用者'pungki'的程序,可以通過下面的命令:

$ ps -u pungki

11,通過程序名和pid過濾

使用 -c 引數,後面跟你要找的程序的名字。比如想顯示乙個名為getty的程序的資訊,就可以使用下面的命令:

$ ps -c getty

12,顯示所有程序資訊,連同命令列

命令:ps -ef

shell中的PS命令的含義

1.ps檢視程序的命令。2.ps命令中的 cpu是指乙個程序占用cpu的時間百分比。ps的man手冊的解釋是這樣的 ps的 中是這樣處理的 其中seconds since boot是用當前時間減去系統啟動時的時間得到的,啟動的時間通過讀 proc stat中的btime獲得。而start time是...

Linux 中 ps命令詳解

linux 中 ps 命令詳解 ps ef 檢視正在活動的程序 ps ef grep abc 檢視含有 abc 的活動程序 ps ef grep v abc 檢視不含 abc 的活動程序 1 ps a 顯示現行終端機下的所有程式,包括其他使用者的程式。2 ps a 顯示所有程式。3 ps c 列出程...

ps命令詳解

平時linux程序檢視還是比較常用的,於是我研究了一下linux ps命令的使用方式,在這裡拿出來和大家分享一下,希望對大家有用。linux監控工具大全 1.ps簡介前面介紹的兩個命令 who w命令 都是用於檢視當前系統使用者的情況,下面就來看看程序的情況,這也是本章的主題。要對程序進行監測和控制...