ps命令詳解

2021-06-23 07:07:04 字數 3915 閱讀 8980

平時linux程序檢視還是比較常用的,於是我研究了一下linux ps命令的使用方式,在這裡拿出來和大家分享一下,希望對大家有用。

linux監控工具大全

1. ps簡介前面介紹的兩個命令(who、w命令)都是用於檢視當前系統使用者的情況,下面就來看看程序的情況,這也是本章的主題。要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需要檢視當前程序,而ps命令就是最基本同時也是非常強大的linux程序檢視命令。使用該命令可以確定有哪些程序正在執行和執行的狀態、程序是否結束、程序有沒有僵死、哪些程序占用了過多的資源等等。總之大部分資訊都是可以通過執行該命令得到的。

2. ps命令及其引數

ps命令最常用的還是用於監控後台程序的工作情況,因為後台程序是不和螢幕鍵盤這些標準輸入/輸出裝置進行通訊的,所以如果需要檢測其情況,便可以使用ps命令了。

該命令語法格式如下:ps [選項]

下面對命令選項進行說明:

◆-e 顯示所有程序。

◆-f 全格式。

◆-h 不顯示標題。

◆-l 長格式。

◆-w 寬輸出。

◆a 顯示終端上的所有程序,包括其他使用者的程序。

◆r 只顯示正在執行的程序。

◆x 顯示沒有控制終端的程序。

o[+|-] k1 [,[+|-] k2 [,…]] 根據short keys、k1、k2中快捷鍵指定的多級排序順序顯示程序列表。對於ps的不同格式都存在著預設的順序指定。這些預設順序可以被使用者的指定所覆蓋。其中 「+」字元是可選的,「-」字元是倒轉指定鍵的方向。

pids 只列出指定程序的情況。各程序id之間使用逗號分隔。該程序列表必須在命令列引數的最後乙個選項後面緊接著給出,中間不能插入空格。比如:ps -f1,4,5。

以下介紹長命令列選項,這些選項都使用「--」開頭:

◆--sort x[+|-] key [,[+|-] key [,…]] 從sort keys段中選乙個多字母鍵。「+」字元是可選的,因為預設的方向就是按數字公升序或者詞典淥承頡1熱紓?ps -jax -sort=uid,-ppid,+pid。

◆--help 顯示幫助資訊。

◆--version 顯示該命令的版本資訊。

在前面的選項說明中提到了排序鍵,接下來對排序鍵作進一步說明。需要注意的是排序中使用的值是ps使用的內部值,並非僅用於某些輸出格式的偽值。

排序鍵列表

短格式長格式

說 明◆c-cmd可執行的簡單名稱

◆c-cmdline完整命令列

◆f-flags長模式標誌

◆g-pgrp程序的組id

◆g-tpgid控制tty程序組id

◆j-cutime累計使用者時間

◆j-cstime累計系統時間

◆k-utime使用者時間

◆k-stime系統時間

◆m-min_flt次要頁錯誤的數量

◆m-maj_flt主要頁錯誤的數量

◆n-cmin_flt累計次要頁錯誤

◆n-cmaj_flt累計主要頁錯誤

◆o-session對話id

◆p-pid程序id

◆p-ppid父程序id

◆r-rss駐留大小

◆r-resident駐留頁

◆s-size記憶體大小(千位元組)

◆s-share共享頁的數量

◆t-ttytty次要裝置號

◆t-start_time程序啟動的時間

◆u-uid-uid

◆u-user使用者名稱

◆v-vsize總的虛擬記憶體數量(位元組)

◆y-priority核心排程優先順序

3. 常用ps命令引數

前面兩節介紹的引數可能讓讀者覺得有些可怕,實際上這是乙個非常容易使用的命令,一般的使用者只需掌握一些最常用的命令引數就可以了。 最常用的三個引數是u、a、x,下面將通過例子來說明其具體用法。

以root身份登入系統,檢視當前程序狀況

$ ps

pid tty time command

5800 ttyp0 00:00:00 bash

5835 ttyp0 00:00:00 ps

可以看到,顯示的專案共分為四項,依次為pid(程序id)、tty(終端名稱)、time(程序執行時間)、command(該程序的命令列輸入)。

使用u選項來檢視程序所有者及其他一些詳細資訊,如下所示:

$ ps u

user pid %cpu %mem usz rss tty stat start time command

test 5800 0.0 0.4 1892 1040 ttyp0 s nov27 0:00 -bash

test 5836 0.0 0.3 2528 856 ttyp0 r nov27 0:00 ps u

在bash程序前面有條橫線,意味著該程序便是使用者的登入shell,所以對於乙個登入使用者來說帶短橫線的程序只有乙個。還可以看到%cpu、%mem兩個選項,前者指該程序占用的cpu時間和總時間的百分比;後者指該程序占用的記憶體和總記憶體的百分比。

在這種情況下看到了所有控制終端的程序;但是對於其他那些沒有控制終端的程序還是沒有觀察到,所以這時就需要使用x選項。使用x選項可以觀察到所有的程序情況。

下面是使用x選項的例子:

$ ps x

pid tty stat time command

5800 ttyp0 s 0:00 -bash

5813 ttyp1 s 0:00 -bash

5921 ttyp0 s 0:00 man ps

5922 ttyp0 s 0:00 sh -c /usr/bin/gunzip -c /var/catman/cat1/ps.1.gz | /

5923 ttyp0 s 0:00 /usr/bin/gunzip -c /var/catman/cat1/ps.1.gz

5924 ttyp0 s 0:00 /usr/bin/less -is

5941 ttyp1 r 0:00 ps x

可以發現突然一下子就多出了那麼多的程序。這些多出來的程序就是沒有控制終端的程序。

前面看到的所有程序都是test使用者自己的。其實還有許多其他使用者在使用著系統,自然也就對應著其他的很多程序。如果想對這些程序有所了解,可以使用a選項來檢視當前系統所有使用者的所有程序。經常使用的是aux組合選項,這可以顯示最詳細的程序情況。

$ ps aux

user pid %cpu %mem vsz rss tty stat start time command

root 1 0.0 0.0 1136 64 ? s nov25 0:02 init [3]

root 2 0.0 0.0 0 0 ? sw nov25 0:00 [kflushd]

root 3 0.0 0.0 0 0 ? sw nov25 0:03 [kupdate]

root 4 0.0 0.0 0 0 ? sw nov25 0:00 [kpiod]

root 5 0.0 0.0 0 0 ? sw nov25 0:00 [kswapd]

root 163 0.0 0.1 1628 332 ? s nov25 0:02 sshd

root 173 0.0 0.0 1324 200 ? s nov25 0:00 syslogd

root 181 0.0 0.0 1420 0 ? sw nov25 0:00 [klogd]

daemon 191 0.0 0.1 1160 312 ? s nov25 0:00 /usr/sbin/atd

root 201 0.0 0.1 1348 492 ? s nov25 0:00 crond

root 212 0.0 0.0 1292 68 ? s nov25 0:00 inetd

……在顯示的最前面是其他使用者的程序情況,可以看到有root、daemon等使用者以及他們所啟動的程序。 在上面的例子中,介紹了ps命令最常見的一些選項和選項組合,使用者可以根據自己的需要選用。

以上給大家講解了linux程序檢視中的ps命令的使用,接下來將會講解檢視系統使用者情況的命令who。

PS命令詳解

要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需要檢視當前程序,ps命令就是最基本程序檢視命令。使用該命令可 以確定有哪些程序正在執行和執行的狀態 程序是否結束 程序有沒有殭屍 哪些程序占用了過多的資源等等.總之大部分資訊都是可以通過執行該命令得到。ps是顯示瞬間程序的狀態,並不動態連...

ps命令詳解

ps命令用於報告當前系統的程序狀態。可以搭配kill 指令隨時中斷 刪除不必要的程式。ps命令是最基本同時也是非常強大的程序檢視命令,使用該命令可以確定有哪些程序正在執行和執行的狀態 程序是否結束 程序有沒有僵死 哪些程序占用了過多的資源等等,總之大部分資訊都是可以通過執行該命令得到的。ps 選項 ...

ps命令詳解

5.停止 程序收到sigstop,sigstp,sigtin,sigtou訊號後停止執行執行 z 僵死 a defunct zombie process aux 顯示所有包含其他使用者的行程 au x 輸出格式 command 所執行的指令 範例 root 4 0.0 0.0 0 0 sw sep1...