ps命令在Linux中的用法示例

本指南將帶您通過各種示例用法 ps Linux / Unix系統中的命令。 ps,是的首字母縮寫 流程狀態 是用於顯示Linux / Unix系統系統上正在運行的進程的實用程序。它報告當前系統進程的快照。

Syntax: ps [options]

ps接受三種類型的選項:

1.UNIX選項,可以分組,並且必須以破折號(-)開頭。 2. BSD選項,可以分組,並且不能與破折號一起使用。 3. GNU long選項,前面帶有兩個破折號(–)

ps命令在Linux中的用法示例

1.顯示與當前外殼程序關聯的進程。

如果不帶任何參數運行 ps 命令顯示與當前shell關聯的進程。

 ps
 PID    TTY        TIME   CMD
1446588 pts/0    00:00:00 bash
1570347 pts/0    00:00:00 ps

默認情況下,您將獲得以下信息:

  • PID 進程的進程ID
  • TTY 進程正在其中運行的終端會話(shell)的名稱
  • 時間 進程使用的CPU時間量
  • CMD 為創建過程而輸入的命令的名稱

2。 要顯示系統上正在運行的所有進程,請鍵入 ps -e 或者 ps -A 命令。

ps -e
    PID TTY         TIME  CMD
      1 ?        00:00:23 systemd
      2 ?        00:00:00 kthreadd
      3 ?        00:00:00 rcu_gp
      4 ?        00:00:00 rcu_par_gp
      6 ?        00:00:00 kworker/0:0H-kblockd
      8 ?        00:00:00 mm_percpu_wq
      9 ?        00:00:01 ksoftirqd/0
     10 ?        00:00:56 rcu_sched
ps -A 
    PID TTY         TIME  CMD
      1 ?        00:00:23 systemd
      2 ?        00:00:00 kthreadd
      3 ?        00:00:00 rcu_gp
      4 ?        00:00:00 rcu_par_gp
      6 ?        00:00:00 kworker/0:0H-kblockd
      8 ?        00:00:00 mm_percpu_wq
      9 ?        00:00:01 ksoftirqd/0
     10 ?        00:00:56 rcu_sched

3。要顯示全格式列表,請鍵入 ps -ef 或者 ps -eF 命令。

ps -ef
UID          PID    PPID  C STIME TTY         TIME  CMD
root           1       0  0 11:10 ?        00:00:23 /sbin/init splash
root           2       0  0 11:10 ?        00:00:00 [kthreadd]
root           3       2  0 11:10 ?        00:00:00 [rcu_gp]
root           4       2  0 11:10 ?        00:00:00 [rcu_par_gp]
root           6       2  0 11:10 ?        00:00:00 [kworker/0:0H-kblockd]
ps -eF
UID          PID    PPID  C    SZ   RSS PSR STIME TTY         TIME  CMD
root           1       0  0 42347 10916   2 11:10 ?        00:00:23 /sbin/init splash
root           2       0  0     0     0   2 11:10 ?        00:00:00 [kthreadd]
root           3       2  0     0     0   0 11:10 ?        00:00:00 [rcu_gp]
root           4       2  0     0     0   0 11:10 ?        00:00:00 [rcu_par_gp]
root           6       2  0     0     0   0 11:10 ?        00:00:00 [kworker/0:0H-kblockd]

附加信息包括:

  • UID 進程所有者的用戶標識
  • PPID 流程的父流程的PID
  • C 進程佔用的處理器時間
  • 的RSS 輸出命令時使用了多少RAM
  • PSR 當前分配給該進程的處理器
  • 時光 該過程開始的時間

4, 顯示長格式 ps 輸出,類型 ps -efl 或者 ps -eFl 命令。

ps -efl
F S UID          PID    PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY         TIME  CMD
4 S root           1       0  0  80   0 - 42347 -      11:10 ?        00:00:25 /sbin/init splash
1 S root           2       0  0  80   0 -     0 -      11:10 ?        00:00:00 [kthreadd]
1 I root           3       2  0  60 -20 -     0 -      11:10 ?        00:00:00 [rcu_gp]
1 I root           4       2  0  60 -20 -     0 -      11:10 ?        00:00:00 [rcu_par_gp]
ps -eFl
F S UID          PID    PPID  C PRI  NI ADDR SZ WCHAN    RSS PSR STIME TTY         TIME  CMD
4 S root           1       0  0  80   0 - 42347 -      10916   1 11:10 ?        00:00:25 /sbin/init splash
1 S root           2       0  0  80   0 -     0 -          0   2 11:10 ?        00:00:00 [kthreadd]
1 I root           3       2  0  60 -20 -     0 -          0   0 11:10 ?        00:00:00 [rcu_gp]
1 I root           4       2  0  60 -20 -     0 -          0   0 11:10 ?        00:00:00 [rcu_par_gp]

我們獲得以下信息:

  • F 與進程關聯的標誌。
  • 小號 進程的狀態。該列使用以下代碼:
    • d 不間斷的睡眠
    • [R 跑步
    • 小號 睡眠中斷
    • Ť 停止或跟蹤
    • ž 殭屍
  • PRI 流程的優先級。
  • 這個過程的價值。
  • 地址 進程的內存地址。
  • 深圳 進程的大小。
  • CHAN 進程正在休眠的內核函數的名稱。 此列中的破折號(–)表示該進程當前正在運行。

5,顯示中的所有進程 Bsd 格式,類型 ps au 或者 ps aux 命令。

 ps au
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
frank       1975  0.0  0.0 166544  6572 tty2     Ssl+ 09:21   0:00 /usr/lib/gdm3/gdm-x-session --register-session --run-script i3
frank       1978  7.6  0.5 735048 42868 tty2     Sl+  09:21   1:01 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -ke
frank       2001  0.0  0.1  35416 12864 tty2     S+   09:21   0:00 i3
  ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.2  0.1 168096 11876 ?        Ss   09:18   0:02 /sbin/init splash
root           2  0.0  0.0      0     0 ?        S    09:18   0:00 [kthreadd]

root 3 0.0 0.0 0 0 ? I< 09:18 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 09:18 0:00 [rcu_par_gp]

6,顯示其有效用戶標識的所有進程 (EUID) 或名稱在用戶列表中,鍵入 ps -fu frank 或者 ps -fu 1000 命令。

ps -fu frank
 UID          PID    PPID  C STIME TTY          TIME CMD
frank       1880       1  0 09:21 ?        00:00:00 /lib/systemd/systemd --user
frank       1884    1880  0 09:21 ?        00:00:00 (sd-pam)
frank       1896    1880  1 09:21 ?        00:00:18 /usr/bin/pulseaudio --daemonize=no --log-target=journal
 ps -fu 1000
UID          PID    PPID  C STIME TTY          TIME CMD
frank       1880       1  0 09:21 ?        00:00:00 /lib/systemd/systemd --user
frank       1884    1880  0 09:21 ?        00:00:00 (sd-pam)
frank       1896    1880  1 09:21 ?        00:00:18 /usr/bin/pulseaudio --daemonize=no --log-target=journal

7 顯示其真實用戶ID的進程 (RUID) 或名稱在用戶列表中,鍵入 ps -fU frank 或者 ps -fU 1000 命令。

ps -fU frank
UID          PID    PPID  C STIME TTY          TIME CMD
frank       1880       1  0 09:21 ?        00:00:00 /lib/systemd/systemd --user
frank       1884    1880  0 09:21 ?        00:00:00 (sd-pam)
frank       1896    1880  1 09:21 ?        00:00:20 /usr/bin/pulseaudio --daemonize=no --log-target=journal

8。 按真實組ID顯示所有進程 (RGID) 或名稱,類型 ps -fG dip 或者 ps -fG 30 命令。

ps -fG dip
UID          PID    PPID  C STIME TTY          TIME CMD
libvirt+    1376       1  0 09:20 ?        00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/li
 ps -fG 30
UID          PID    PPID  C STIME TTY          TIME CMD
libvirt+    1376       1  0 09:20 ?        00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/li
❯ ps -fG dip

9。 通過有效的組ID顯示所有進程 (EGID) 或名稱,類型 ps -fg dip 或者 ps -fg 30 命令。

ps -fg dip
UID          PID    PPID  C STIME TTY          TIME CMD
libvirt+    1376       1  0 09:20 ?        00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/li

10。 通過選擇流程 PID, 類型 ps -fp 3511 命令。

ps -fp 3511
UID          PID    PPID  C STIME TTY          TIME CMD
frank       3511       1  0 09:21 pts/0    00:00:00 /usr/bin/zsh

11。 通過選擇流程 PPID, 類型 ps -f --ppid 3890 命令。

ps -f --ppid 3890
UID          PID    PPID  C STIME TTY          TIME CMD
frank       4246    3890  0 09:22 ?        00:00:00 /opt/google/chrome/chrome --type=utility --utility-sub-type=storage.mojom.StorageService --field-trial-handle=132069
frank       4430    3890  0 09:22 ?        00:00:18 /opt/google/chrome/chrome --type=renderer --field-trial-handle=13206994095123897317,8220222987148921566,131072 --lan
frank       4432    3890  0 09:22 ?        00:00:01 /opt/google/chrome/chrome --type=renderer --field-trial-handle=13206994095123897317,8220222987148921566,131072 --lan

12 顯示 ASCII 藝術過程樹,類型 ps -ef --forest 命令。

ps -ef --forest
root        1856     976  0 09:21 ?        00:00:00  _ gdm-session-worker [pam/gdm-password]
frank       1975    1856  0 09:21 tty2     00:00:00      _ /usr/lib/gdm3/gdm-x-session --register-session --run-script i3
frank       1978    1975  6 09:21 tty2     00:05:17          _ /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keept
frank       2001    1975  0 09:21 tty2     00:00:01          _ i3
frank       2066    2001  0 09:21 ?        00:00:00              _ /usr/bin/ssh-agent /usr/bin/im-launch i3

13 要顯示給定進程的進程樹,請鍵入 ps -ef --forest | grep -v grep | grep zsh 命令。

ps -ef --forest | grep -v grep | grep zsh
frank       3458    3318  0 09:21 pts/0    00:00:10      _ /usr/bin/zsh
frank       3511       1  0 09:21 pts/0    00:00:00 /usr/bin/zsh
frank       3590       1  0 09:21 pts/0    00:00:00 /usr/bin/zsh
frank       3591       1  0 09:21 pts/0    00:00:00 /usr/bin/zsh

14。 選擇與中給出的終端相關的過程 tty 清單,類型 ps -t pts/0 命令。

ps -t pts/0
PID TTY          TIME  CMD
3458 pts/0    00:00:12 zsh
3511 pts/0    00:00:00 zsh
3590 pts/0    00:00:00 zsh
3591 pts/0    00:00:00 zsh
3615 pts/0    00:00:00 gitstatusd-linu
292279 pts/0  00:00:00 sudo

15 選擇其流程 PID 出現在pidlist中,鍵入 ps -fp 1903,1947,3362 命令。

ps -fp 1903,1947,3362
UID          PID    PPID  C STIME TTY          TIME CMD
frank       1903    1880  0 09:21 ?        00:00:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
frank       1947    1880  0 09:21 ?        00:00:00 /usr/libexec/goa-identity-service
frank       3362    1880  0 09:21 ?        00:00:00 /usr/libexec/at-spi-bus-launcher

16。 顯示 PID 給定進程名稱的類型 ps -C compton -o pid= 命令。

ps -C compton -o pid=
 2095

17。 顯示 NAME 給定的 PID, 類型 ps -q 2095 -o comm= 命令。

ps -q 2095 -o comm=
compton

18歲 分散 PID,PPID,User nameCommand 的過程類型 ps -eo pid,ppid,user,cmd 命令。

ps -eo pid,ppid,user,cmd
PID     PPID  USER    CMD
1982       2 root     [krfcommd]
2001    1975 frank    i3
2066    2001 frank    /usr/bin/ssh-agent /usr/bin/im-launch i3
2084       1 frank    /bin/sh -c dunst 
2087    2084 frank    dunst
2095       1 frank    compton
2099       1 frank    /bin/sh -c i3bar  --bar_id=bar-0 --socket="/run/user/1000/i3/ipc-socket.2001"

19 要按名稱顯示特定進程,請鍵入 ps -C zsh 命令。

ps -C zsh
PID TTY          TIME  CMD
3458 pts/0    00:00:12 zsh
3511 pts/0    00:00:00 zsh
3590 pts/0    00:00:00 zsh
3591 pts/0    00:00:00 zsh

20 要顯示流程的執行時間,請輸入 ps -eo comm,etime,user | grep terminator 命令。

ps -eo comm,etime,user | grep terminator
terminator         02:26:03 frank

21 顯示安全上下文(for SELinux), 類型 ps -eM 或者 ps -e --context 命令。

ps -eM
LABEL                               PID TTY          TIME CMD
unconfined                            1 ?        00:00:10 systemd
unconfined                            2 ?        00:00:00 kthreadd
unconfined                            3 ?        00:00:00 rcu_gp
ps -e --context 
PID CONTEXT                         COMMAND
1 unconfined                      /sbin/init splash
2 unconfined                      [kthreadd]
3 unconfined                      [rcu_gp]
4 unconfined                      [rcu_par_gp]

這是關於我們在Linux / Unix系統中ps命令示例用法的指南的全部內容。

參考

有關更多信息 ps 命令隨時檢查 maninfo ps 頁面。如果你還有其他 ps 命令用法示例添加註釋。

man ps
info ps

其他教程

在CentOS / Fedora上升級單個軟件包

在Ubuntu 20.04上安裝Cheat Command

在Linux中使用useradd / adduser命令創建用戶帳戶

Sidebar