PS命令
PS命令最常用的方法是ps -aux
然後再利用一個管道符號導向到grep去查找特定的進程,然後再對特定的進程進行操作。
- ps a 顯示現行終端機下的所有程序,包括其他用戶的程序。
- ps -A 顯示所有程序。
- ps c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
- ps -e 此參數的效果和指定"A"參數相同。
- ps e 列出程序時,顯示每個程序所使用的環境變量。
- ps f 用ASCII字符顯示樹狀結構,表達程序間的相互關係。
- ps -H 顯示樹狀結構,表示程序間的相互關係。
- ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。
- ps s 採用程序信號的格式顯示程序狀況。
- ps S 列出程序時,包括已中斷的子程序資料。
- ps -t< 終端機編號> 指定終端機編號,並列出屬於該終端機的程序的狀況。
- ps u 以用戶爲主的格式來顯示程序狀況。
- ps x 顯示所有程序,不以終端機來區分。
前面介紹的兩個命令都是用於查看當前系統用戶的情況,下面就來看看進程的情況,這也是本章的主題。
要對進程進行監測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,而ps命令就是最基本
同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、
進程有沒有僵死、哪些進程佔用了過多的資源等等。總之大部分信息都是可以通過執行該命令得到的。
ps命令最常用的還是用於監控後臺進程的工作情況,因爲後臺進程是不和屏幕鍵盤這些標準輸入/輸出設
備進行通信的,所以如果需要檢測其情況,便可以使用ps命令了。
該命令語法格式如下:
ps [選項]
下面對命令選項進行說明:
-e 顯示所有進程。
-f 全格式。
-h 不顯示標題。
-l 長格式。
-w 寬輸出。
a 顯示終端上的所有進程,包括其他用戶的進程。
r 只顯示正在運行的進程。
x 顯示沒有控制終端的進程。
O[+|-] k1 [,[+|-] k2 [,…]] 根據SHORT KEYS、k1、k2中快捷鍵指定的多級排序順序顯示進程列表。
對於ps的不同格式都存在着默認的順序指定。這些默認順序可以被用戶的指定所覆蓋。其中“+”字符是可選
的,“-”字符是倒轉指定鍵的方向。
pids 只列出付ń痰那榭觥8鶻蘄D之間使用逗號分隔。該進程列表必須在命令行參數的最後一個選項
後面緊接着給出,中間不能插入空格。比如:ps -f1,4,5。
以下介紹長命令行選項,這些選項都使用“--”開頭:
--sort X[+|-] key [,[+|-] key [,…]] 從SORT KEYS段中選一個多字母鍵。“+”字符是可選的,因
爲默認的方向就是按數字升序或者詞典順序。比如: ps -jax -sort=uid,-ppid,+pid。
--help 顯示幫助信息。
--version 顯示該命令的版本信息。
在前面的選項說明中提到了排序鍵,接下來對排序鍵作進一步說明。需要注意的是排序中使用的值是ps使
用的內部值,並非僅用於某些輸出格式的僞值。排序鍵列表見表4-3。
表4-3排序鍵列表
短格式
長格式
說 明
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
tty
tty次要設備號
T
start_time
進程啓動的時間
U
uid
UID
u
user
用戶名
v
vsize
總的虛擬內存數量(字節)
y
priority
內核調度優先級
前面兩節介紹的參數可能讓讀者覺得有些可怕,實際上這是一個非常容易使用的命令,一般的用戶只
需掌握一些最常用的命令參數就可以了。
最常用的三個參數是u、a、x,下面將通過例子來說明其具體用法。
[例20] 以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選項可以觀察到所有的進程情況。