本指南将带您了解各种示例用法 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 name
和 Command
进程的类型 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
命令随意检查 man
和 info ps
页分别。 如果你有其他 ps
命令用法示例 发表评论。
man ps
info ps
在 CentOS/ 上升级单个软件包Fedora
在 Ubuntu 20.04 上安装 Cheat 命令
在 Linux 中使用 useradd/adduser 命令创建用户帐户