ps 命令在 Linux 中的使用示例

本指南将带您了解各种示例用法 ps Linux/Unix 系统中的命令。 ps, 的缩写 进程状态 是一个用于在 Linux/Unix 系统系统上显示正在运行的进程的实用程序。 它报告当前系统进程的快照。

Syntax: ps [options]

ps 接受三种类型的选项:

1.UNIX 选项,可以分组并且必须以破折号 (-) 开头
2. BSD 选项,可以分组并且不能与破折号一起使用。
3. GNU 长选项,前面有两个破折号 (-)

ps 命令在 Linux 中的使用示例

1. 显示与当前 shell 关联的进程。

当没有任何参数运行时, ps 命令显示与当前 shell 关联的进程。

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

默认情况下,您将获得以下信息:

  • PID 进程的进程ID
  • 打字机 进程在其中运行的终端会话(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]

附加信息包括:

  • 用户标识 进程所有者的用户 ID
  • 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 不间断睡眠
    • 电阻 跑步
    • 可中断睡眠
    • 停止或追踪
    • 僵尸
  • PRI 进程的优先级。
  • 过程的美好价值。
  • 地址 进程的内存地址。
  • 深圳 进程的大小。
  • 武汉市 进程在其中休眠的内核函数的名称。 此列中的破折号 (-) 表示进程当前正在运行。

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.显示所有有效用户 ID 的进程 (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 命令

在 Linux 中使用 useradd/adduser 命令创建用户帐户