Linux ps 命令
介绍
ps 命令是 Linux 中广泛使用的实用程序,它提供当前进程及其状态的快照。它有助于监控正在运行的进程,识别进程 ID (PID)、终端类型 (TTY)、CPU 时间使用情况、命令名称、用户 ID 和其他信息。本文全面概述了 ps 命令在现实生活中的各种用例。
ps 命令的语法
ps 命令的基本语法如下 -
$ ps [OPTIONS]
ps 命令支持三种不同的语法风格:Unix、BSD 和 GNU。 Unix 风格语法可以换行且前面有连字符,BSD 可以换行但前面不能有连字符,GNU 语法使用长选项并且前面有双连字符。
ps 命令选项
以下是与 ps 命令一起使用的一些开关 -
ps -ef 或 ps -aux - 以完整格式列出当前正在运行的进程
ps -ax - 列出当前正在运行的进程
ps -u <用户名> - 列出特定用户的进程
ps -C
- 列出给定命令的进程 ps -p
- 列出具有给定 PID 的进程 ps -ppid
- 列出具有给定父进程 ID (PPID) 的进程 pstree - 在层次结构中显示进程
ps -L - 列出特定进程的所有线程
ps --sort pmem - 查找内存泄漏
ps -eo - 显示安全信息
ps -U root -u root u - 显示 root 运行的进程
ps 命令的用例
让我们看一下 ps 命令的实际用例,这对系统管理员很有帮助。
列出所有正在运行的进程
要查看系统上当前运行的所有进程,请使用以下命令 -
$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jan31 ? 00:00:00 /sbin/init splash
root 2 0 0 Jan31 ? 00:00:00 [kthreadd]
root 3 2 0 Jan31 ? 00:00:00 [rcu_gp]
root 4 2 0 Jan31 ? 00:00:00 [rcu_par_gp]
root 5 2 0 Jan31 ? 00:00:00 [kworker/0:0-events]
...
在上面的输出中,PID表示正在运行的命令的进程ID,TTY是当前命令正在执行的终端类型,TIME > 是CPU执行进程所花费的时间,CMD是当前命令。
列出按 CPU 或内存使用情况筛选的所有正在运行的进程
要查看按 CPU 或内存使用情况过滤的所有当前正在运行的进程,请使用以下命令 -
$ pd-aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19404 3116 ? Ss Jan31 0:00 /sbin/init splash
root 2 0.0 0.0 0 0 ? S Jan31 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? R Jan31 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? S Jan31 0:00 [rcu_par_gp]
root 5 0.0 0.0 0 0 ? S Jan31 0:00 [kworker/0:0-events]
...
在上面的输出中,%CPU 显示进程当前的 CPU 使用情况,%MEM 显示进程的内存使用情况,VSZ 是进程的内存使用情况。虚拟内存的大小,RSS 是常驻池的大小。
列出特定用户的进程
要查看特定用户运行的所有进程,请使用以下命令 -
$ ps -u <username>
例如,要查看 root 用户的所有进程,请使用以下命令 -
$ ps -u root
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19404 3116 ? Ss Jan31 0:00 /sbin/init splash
root 2 0.0 0.0 0 0 ? S Jan31 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? R Jan31 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? S Jan31 0:00 [rcu_par_gp]
root 5 0.0 0.0 0 0 ? S Jan31 0:00 [kworker/0:0-events]
...
特定命令的进程列表
要查看特定命令运行的所有进程,请使用以下命令 -
$ ps -C <command>
例如,要查看 python 命令的所有正在运行的进程,请使用以下命令 -
$ ps -C python
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 123 0.0 1.2 95768 23844 ? S 12:00 0:05 python
user1 456 0.2 0.9 95768 23844 ? S 13:00 0:03 python
...
列出具有给定 PID 的进程
要查看具有给定 PID 的进程,请使用以下命令 -
$ ps -p <PID>
例如,要查看 PID 123 的进程,请使用以下命令 -
$ ps -p 123
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 123 0.0 1.2 95768 23844 ? S 12:00 0:05 python
结论
ps 命令是一个非常强大的工具,用于管理 Linux 上的进程。无论您是要监视特定进程、查找占用过多内存或 CPU 的进程,还是监视系统上运行的所有进程,ps 命令都能提供您所需的信息。它是任何 Linux 管理员或高级用户的必备工具。