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