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> - 列出具有给定PID 的进程
ps -ppid <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 管理员或高级用户来说,它都是必不可少的工具。