❶ linux進程查看的ps命令
ps簡介
前面介紹的兩個命令都是用於查看當前系統用戶的情況,下面就來看看進程的情況,這也是本章的主題。要對進程進行監測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,而ps命令就是最基本同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等等。總之大部分信息都是可以通過執行該命令得到的。
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使用的內部值,並非僅用於某些輸出格式的偽值。排序鍵列表見表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
內核調度優先順序
常用ps命令參數
前面兩節介紹的參數可能讓讀者覺得有些可怕,實際上這是一個非常容易使用的命令,一般的用戶只需掌握一些最常用的命令參數就可以了。 最常用的三個參數是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選項可以觀察到所有的進程情況。
[例21] 下面是使用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組合選項,這可以顯示最詳細的進程情況。
[例22]
$ 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、pstree、pgrep等
1、ps
顯示進程信息,參數可省略
-aux 以BSD風格顯示進程
常用 -efH 以SystemV風格顯示進程
-e , -A 顯示所有進程
a 顯示終端上所有用戶的進程
x 顯示無終端進程
u顯示詳細信息
f 樹狀顯示
w 完整顯示信息
l 顯示長列表
各列輸出欄位的含義:
USER 進程所有者
PID 進程ID
PPID 父進程
%CPU CPU佔用率
%MEM 內存佔用率
NI 進程優先順序。數值越大,佔用CPU時間越少
VSZ 進程虛擬大小
RSS 頁面文件佔用
TTY 終端ID
STAT 進程狀態
+---D 不可中斷
Uninterruptible sleep (usually IO)
+---R 正在運行,或在隊列中的進程
+---S 處於休眠狀態
+---T 停止或被追蹤
+---Z 僵屍進程
+---W 進入內存交換(從內核2.6開始無效)
+---X 死掉的進程
+---< 高優先順序
+---N 低優先順序
+---L 有些頁被鎖進內存
+---s 包含子進程
+---+ 位於後台的進程組;
+---l 多線程,克隆線程 multi-threaded (using CLONE_THREAD, like
NPTL pthreads do)
PID:進程標識符,系統為每一個進程分配一個識別碼,稱為PID。
ps命令極為常用,其他命令還有:
2.pstree
樹狀顯示進程信息
-a 顯示完整命令及參數
-c 重復進程分別顯示
-c 顯示進程ID、PID
-n 按 PID排列進程
3.pgrep<進程名>
顯示進程的PID
-l 顯示進程名和進程PID
-o 進程起始ID
-n 進程終止ID
❸ linux 下查看進程用什麼命令
linux 下查看進程可以使用的命令:
1、ps命令查找與進程相關的PID號:
2、ps a 顯示現行回終端機下的所有程序,包括其他答用戶的程序。
3、ps -A 顯示所有程序。
4、ps c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
5、ps -e 此參數的效果和指定"A"參數相同。
6、ps e 列出程序時,顯示每個程序所使用的環境變數。
7、ps f 用ASCII字元顯示樹狀結構,表達程序間的相互關系。
8、ps -H 顯示樹狀結構,表示程序間的相互關系。
9、ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。
10、ps s 採用程序信號的格式顯示程序狀況。
11、ps S 列出程序時,包括已中斷的子程序資料。
12、ps -t<終端機編號> 指定終端機編號,並列出屬於該終端機的程序的狀況。
13、ps u 以用戶為主的格式來顯示程序狀況。
14、ps x 顯示所有程序,不以終端機來區分。
❹ 濡備綍鏌ョ湅Linux榪涚▼鎬庝箞鏌ョ湅linux榪涚▼
linux涓嬫庝箞鏌ョ湅鎵鏈夎繘紼嬶紵
psaux涓烘煡鐪嬬郴緇熷綋鍓嶆墍鏈夎繘紼嬪懡浠ゃ傦紱宸ュ叿/鍘熸枡錛沄MwareLinux鐢佃剳錛涙柟娉/姝ラわ紱
1銆佹墦寮VMware鉶氭嫙鏈猴紝鎵撳紑緇堢鍛戒護琛岋紝閫氳繃鈥漵u鈥滃懡浠ゅ垏鎹㈠埌root鐢ㄦ埛涓嬨傦紱
2銆佽緭鍏モ減saux鈥滄寜涓嬪洖杞﹂敭錛屽嵆鍙鏄劇ずlinux涓嬫墍鏈夌殑榪涚▼銆傦紱
3銆佽緭鍏ps-le涔熷彲浠ユ樉紺烘墍鏈夌殑榪涚▼錛岃繖涓鏄鎸夌収浼樺厛綰ф潵鏄劇ず銆
linux鏌ョ湅8090絝鍙h鍝涓榪涚▼璋冪敤錛
涓縐嶆柟娉曟槸lsof-i:絝鍙e彿銆
鍙︿竴縐嶆柟娉曟槸netstat-tunlp|grep絝鍙e彿
linux鏌ョ湅榪涚▼鐢卞摢涓榪涚▼鍚鍔錛
1銆佹煡鐪嬭繘紼嬧滄墦寮鈥濈殑鏂囦歡(鏂規硶1)錛
1錛塸idofprograme-name(鑾峰緱鎯充簡瑙g殑榪涚▼(programe-name)鐨凱ID)鎴杙s-aux|grepprograme-name(鑾峰緱鎯充簡瑙g殑榪涚▼(programe-name)鐨凱ID)鎵懼嚭榪涚▼鐨凱ID2錛塩d/proc/$PID/fd錛堜細鐪嬭佹枃浠舵弿榪扮︼級
3錛塴s-l寰楀埌鏂囦歡鎻忚堪絎︽寚鍚戠殑瀹為檯鏂囦歡,鍗沖綋鍓嶈繘紼嬫墦寮鐨勬枃浠2銆佹煡鐪嬭繘紼嬧滄墦寮鈥濈殑鏂囦歡(鏂規硶2)錛
1錛夎幏寰楁兂浜嗚В鐨勮繘紼嬬殑PID鏂規硶鍚屼笂2錛塴sof-cprograme-name鎴杔sof-p$PID
linux涓錛屾庝箞鏌ョ湅榪涚▼鎵瀵瑰簲鐨勬湇鍔″悕鍛錛
1銆傛煡鐪嬭繘紼嬪崰鐢ㄧ殑絝鍙e彿netstat-anp#netstat-anp|grepsyslogudp000銆0銆0銆0:5140銆
0銆0銆0:*31483/syslogd
2銆
鏌ョ湅浣跨敤絝鍙e彿鐨勮繘紼媗sof#lsof-i:*:shell(LISTEN)*:syslog銆
linux鎬庝箞鏌ョ湅鏌愪釜榪涚▼鎵ц岀殑鏂囦歡璺寰勶紵
linux涓嬭繘紼嬭繍琛屽悗錛岃繘紼嬩俊鎮瀛樺偍鍦/proc/榪涚▼id鐩褰曚笅闈錛岃繘紼媔d鏌ョ湅鍛戒護ps-ef|grep榪涚▼鍚嶏紝vi/proc/榪涚▼id/environ鎼滅儲PWD瀛楁碉紝鍒欐槸璇ヨ繘紼嬭繍琛屾墍鍦ㄧ洰褰