ps命令常用選項參數詳解
PS命令是什麽
ps命令能夠給出當前系統中進程的快照。它能捕獲系統在某一時間的進程狀態。如果想要不斷更新查看這個狀態,可以配合watch命令或使用top命令。
ps命令支持三種使用的語法格式
UNIX 風格:選項可以組合在一起,並且選項前必須有"-"連字符。
BSD 風格 :選項可以組合在一起,但是選項前不能有"-"連字符。
GNU 風格 :長選項,選項前需要有兩個"-"連字符。
ps命令基本選項及參數釋義
a:顯示現行終端機下的所有程序,包括其他用戶的程序。
c:列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,選項或常駐服務的標示。
e:列出程序時,顯示每個程序所使用的環境變量。
f:用ASCII字符顯示樹狀結構,表達程序間的相互關系。
h:不顯示標題列。
u:以用戶為主的格式來顯示程序狀況。
x:顯示所有程序,不以終端機來區分。
r:只列出現行終端機正在執行中的程序。
v:采用虛擬內存的格式顯示程序狀況
-a:顯示所有終端機下執行的程序,除了階段作業領導者之外。
-c:顯示CLS和PRI欄位。
-d:顯示所有程序,但不包括階段作業領導者的程序。
-e:顯示所有程序。
-f:顯示UID,PPIP,C與STIME欄位。
-H:顯示樹狀結構,表示程序間的相互關系。
-u<用戶識別碼>:列出屬於該用戶的程序的狀況,也可使用用戶名稱來指定。
-j:采用工作控制的格式顯示程序狀況
-l或l:采用詳細的格式來顯示程序狀況。
使用基本的ps命令,在執行之後的結果如下
[[email protected] ~]# ps PID TTY TIME CMD 15422 pts/1 00:00:00 bash 16511 pts/1 00:00:00 ps
結果會默認顯示4列信息。
PID:運行命令的進程編號。
TTY:命令所運行的終端。tty1 - tty6 是本機登入者,pts/0等為網絡連接主機的程序。
TIME:運行著改命令所占用的CUP處理時間。
CMD:該進程所運行的命令。
將目前屬於自己本次登入的PID與相關信息列示出來
[[email protected]
F:這個程序的旗標(flag)4,表示使用者為superuser。
S:這個程序的狀態(STAT)
R:正在運作或是被運作。
S:正在睡眠中,可被訊號喚醒。
T:正在偵測或者停止。
Z:已經停止,但副程序無法正常終止。造成zombie(僵屍)程序狀態UID:癡行者身份
C:CPU使用資源百分比
PRI:進程的執行優先權(Priority),值越小越優先
NI:進程的nice值,其表示進程可被執行的優先級的修正數值。
ADDR:內核函數,指出改程序在內存的哪個部分。如果是執行的程序,則為"-"
SZ:使用的內存大小
WCHAN:目前這個程序是否正在運行,"-"表示正在運行。
列出目前所有正在內存當中的程序
[[email protected] ~]# ps -ax 0 0 ? S 06:25 0:00 [scsi_eh_0] PID TTY STAT TIME COMMAND 1 ? Ss 0:15 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 2 ? S 0:00 [kthreadd] 3 ? S 0:01 [ksoftirqd/0] 5 ? S< 0:00 [kworker/0:0H] 6 ? S 0:04 [kworker/u256:0] 7 ? S 0:02 [migration/0] 8 ? S 0:00 [rcu_bh] 9 ? S 0:17 [rcu_sched] 10 ? S 0:00 [watchdog/0]
-USER:進程屬於哪個使用者
VSZ:占用虛擬內存
RSS:占用固定內存
START:程序被觸發啟動的時間。
TIME:改程序實際使用CPU運作的時間。
COMMAND:改程序實際指令
常用選項組合
查看全部進程ps -ax
[[email protected] ~]# ps -ax PID TTY STAT TIME COMMAND 1 ? Ss 0:15 /usr/lib/systemd/systemd --switched-root --system --d 2 ? S 0:00 [kthreadd] 3 ? S 0:01 [ksoftirqd/0] 5 ? S< 0:00 [kworker/0:0H] 6 ? S 0:04 [kworker/u256:0] 7 ? S 0:02 [migration/0] 8 ? S 0:00 [rcu_bh]
根據用戶過濾進程ps -u root
[[email protected] ~]# ps -u root PID TTY TIME CMD 1 ? 00:00:15 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:01 ksoftirqd/0 5 ? 00:00:00 kworker/0:0H 6 ? 00:00:04 kworker/u256:0 7 ? 00:00:02 migration/0 8 ? 00:00:00 rcu_bh
通過CPU和內存過濾進程ps -aux
[[email protected] ~]# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 193628 6800 ? Ss 06:25 0:15 /usr/lib/system root 2 0.0 0.0 0 0 ? S 06:25 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 06:25 0:01 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< 06:25 0:00 [kworker/0:0H] root 6 0.0 0.0 0 0 ? S 06:25 0:04 [kworker/u256:0 root 7 0.0 0.0 0 0 ? S 06:25 0:02 [migration/0] root 8 0.0 0.0 0 0 ? S 06:25 0:00 [rcu_bh] root 9 0.0 0.0 0 0 ? S 06:25 0:17 [rcu_sched]
根據線程來過濾進程ps -L 3223
\
[[email protected] ~]# ps -L 3223 PID LWP TTY STAT TIME COMMAND 3223 3223 ? Sl 0:00 /usr/libexec/ibus-x11 --kill-daemon 3223 3229 ? Sl 0:00 /usr/libexec/ibus-x11 --kill-daemon 3223 3230 ? Sl 0:00 /usr/libexec/ibus-x11 --kill-daemon
樹形顯示進程ps -axjf``pstree
\
[[email protected] ~]# ps -afjx PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 0 2 0 0 ? -1 S 0 0:00 [kthreadd] 2 3 0 0 ? -1 S 0 0:01 \_ [ksoftirqd/0] 2 5 0 0 ? -1 S< 0 0:00 \_ [kworker/0:0H] 2 6 0 0 ? -1 S 0 0:04 \_ [kworker/u256:0] 2 7 0 0 ? -1 S 0 0:02 \_ [migration/0] 2 8 0 0 ? -1 S 0 0:00 \_ [rcu_bh] 2 9 0 0 ? -1 S 0 0:17 \_ [rcu_sched] 2 10 0 0 ? -1 S 0 0:00 \_ [watchdog/0] 2 11 0 0 ? -1 S 0 0:00 \_ [watchdog/1] 2 12 0 0 ? -1 S 0 0:01 \_ [migration/1] 2 13 0 0 ? -1 S 0 0:02 \_ [ksoftirqd/1] 2 16 0 0 ? -1 S 0 0:00 \_ [watchdog/2] 2 17 0 0 ? -1 S 0 0:00 \_ [migration/2] 2 18 0 0 ? -1 S 0 0:01 \_ [ksoftirqd/2]
[[email protected] ~]# pstree systemd─┬─ModemManager───2*[{ModemManager}] ├─NetworkManager─┬─2*[dhclient] │ └─2*[{NetworkManager}] ├─2*[abrt-watch-log] ├─abrtd ├─accounts-daemon───2*[{accounts-daemon}] ├─alsactl ├─at-spi-bus-laun─┬─dbus-daemon───{dbus-daemon} │ └─3*[{at-spi-bus-laun}] ├─at-spi2-registr───2*[{at-spi2-registr}] ├─atd ├─auditd─┬─audispd─┬─sedispatch │ │ └─{audispd} │ └─{auditd}
手工篩選信息ps -eo pid,user,args
[[email protected] ~]# ps -eo pid,user,args PID USER COMMAND 1 root /usr/lib/systemd/systemd --switched-root --system --deserialize 21 2 root [kthreadd] 3 root [ksoftirqd/0] 5 root [kworker/0:0H] 6 root [kworker/u256:0] 7 root [migration/0] 8 root [rcu_bh] 9 root [rcu_sched] 10 root [watchdog/0] 11 root [watchdog/1]
使用watch實時監控進程狀態watch -n1 ‘ps -aux‘
[[email protected] ~]# watch -n1 ‘ps -aux‘ Every 1.0s: ps -aux Sun Jul 9 20:20:39 2017 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 193628 6800 ? Ss 06:25 0:15 /usr/lib/systemd/systemd --switched-root --system --d root 2 0.0 0.0 0 0 ? S 06:25 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 06:25 0:01 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< 06:25 0:00 [kworker/0:0H] root 6 0.0 0.0 0 0 ? S 06:25 0:04 [kworker/u256:0] root 7 0.0 0.0 0 0 ? S 06:25 0:02 [migration/0] root 8 0.0 0.0 0 0 ? S 06:25 0:00 [rcu_bh]
本文出自 “冬至靈思隕” 博客,請務必保留此出處http://wangzhihao.blog.51cto.com/9506194/1945713
ps命令常用選項參數詳解