Linux 1.3 进程管理命令ps
Linux 1.3 进程管理命令ps
ps
(Process Status)是 Unix 和类 Unix 操作系统(如 Linux 和 macOS)中用于显示当前系统中运行的进程状态的命令。ps
命令非常强大,可以显示各种进程信息,如进程 ID、父进程 ID、用户、CPU 使用率、内存使用率等。
1 基本用法
1.1 显示当前终端的进程
1 | ps |
这个命令会显示当前终端会话中的进程信息。
1.2 显示所有用户的进程
1 | ps aux |
- a:显示所有用户的进程。
- u:以用户友好的格式显示。
- x:显示没有控制终端的进程。
1.3 显示指定用户的进程
1 | ps -u username |
例如,显示 john
用户的进程:
1 | ps -u john |
1.4 显示指定 PID 的进程
1 | ps -p PID |
例如,显示 PID 为 1234 的进程:
1 | ps -p 1234 |
2 常用选项
- -A 或 -e:显示所有进程。
- -f:显示完整格式的输出。
- -F:显示更详细的完整格式。
- -l:显示长格式的输出。
- -T:显示所有线程。
- -o:自定义输出格式。
- -C:按命令名称过滤进程。
- -g:按会话组或进程组过滤。
- -t:按终端过滤。
3 输出字段
ps
命令的输出字段通常包括以下内容:
- PID:进程 ID。
- PPID:父进程 ID。
- UID:用户 ID。
- USER:用户名。
- %CPU:CPU 使用率。
- %MEM:内存使用率。
- VSZ:虚拟内存大小(以 KB 为单位)。
- RSS:常驻集大小(以 KB 为单位)。
- TTY:控制终端。
- STAT:进程状态。
- START:进程启动时间。
- TIME:进程使用的 CPU 时间。
- COMMAND:命令行。
4 自定义输出格式
你可以使用 -o
选项来自定义输出格式。例如,只显示 PID 和命令:
1 | ps -o pid,command |
5 示例
5.1 显示所有进程的详细信息
1 | ps aux |
5.2 显示所有进程的完整格式
1 | ps -ef |
5.3 显示指定命令的进程
1 | ps -C sshd |
5.4 显示指定用户的进程并自定义输出格式
1 | ps -u john -o pid,ppid,user,%cpu,%mem,command |
6 常见用法
查找特定进程:
1
ps aux | grep sshd
命令分解
ps aux:- ps:显示当前系统中运行的进程状态。
- a:显示所有用户的进程。
- u:以用户友好的格式显示。
x:显示没有控制终端的进程。
综合起来,ps aux 会显示系统中所有用户的进程,包括那些没有控制终端的进程,并以用户友好的格式显示。
|:
管道符:将前一个命令的输出作为后一个命令的输入。grep sshd:
grep:用于搜索文本中的模式。
sshd:要搜索的模式,即字符串 “sshd”。
命令执行过程ps aux 生成一个包含所有进程信息的列表。
| 将 ps aux 的输出传递给 grep。
grep sshd 从 ps aux 的输出中筛选出包含字符串 “sshd” 的行。结果:
怎么看?
- USER: root 表示该进程的所有者是超级用户 root。
- PID: 946 是进程标识号。
- %CPU: 0.0 表示该进程目前未使用任何 CPU 资源。
- %MEM: 0.1 表示该进程占用了大约 0.1% 的系统内存。
- VSZ: 72304 表示该进程的虚拟内存大小为 72304KB。
- RSS: 5696 表示该进程的实际物理内存使用量为 5696 KB。
- TTY: ? 表示该进程没有关联到任何终端。
- STAT: Ss 表示进程处于睡眠状态(S)且是会话领导者(s)。
- START: 11月16 表示进程开始于 11 月 16 日。
- TIME: 0:00 表示进程总共消耗了 0 分钟的 CPU 时间。
- COMMAND: /usr/sbin/sshd -D 表示这是一个 SSH 守护进程,带有一个 -D 标志,可能表示它正在调试模式下运行。
显示占用 CPU 最高的前 10 个进程:
1
ps aux --sort=-%cpu | head -n 11
显示占用内存最高的前 10 个进程:
1
ps aux --sort=-%mem | head -n 11
7 总结
ps
命令是一个非常强大的工具,用于查看和管理系统中的进程。通过不同的选项和组合,你可以获得所需的各种进程信息。希望这些示例和解释能帮助你更好地理解和使用 ps
命令。
评论