在Ubuntu系统中,ps命令是一个用于查看当前系统运行进程的核心工具,它能够提供进程的PID(进程ID)、TTY(终端类型)、TIME(CPU时间)、CMD(命令名)等关键信息,安装和使用ps命令是系统管理和日常运维的基础技能,以下是关于Ubuntu中ps命令的详细说明。

ps命令的安装与默认状态
Ubuntu系统通常默认已安装ps命令,它是procps或procps-ng包的一部分,用户可以通过终端输入ps --version或ps aux检查是否已安装,若提示“command not found”,则需要手动安装,以下是安装步骤:
-
更新软件包列表
在终端执行以下命令以确保软件包索引最新:sudo apt update
-
安装procps-ng包
Ubuntu 18.04及后续版本默认使用procps-ng,执行:sudo apt install procps-ng
对于旧版本(如Ubuntu 16.04),可能需要安装
procps:
(图片来源网络,侵删)sudo apt install procps
-
验证安装
安装完成后,输入ps aux查看进程列表,若显示类似以下内容则表示成功:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.4 19452 9320 ? Ss 08:00 0:01 /sbin/init splash
ps命令的核心参数与使用方法
ps命令的灵活性依赖于丰富的参数组合,以下是常用参数的详细说明:
常用参数分类
| 参数类型 | 参数示例 | 功能说明 |
|---|---|---|
| 基本参数 | ps |
仅显示当前终端下的进程 |
ps -ef |
显示所有进程的完整信息 | |
ps aux |
显示所有进程的详细资源占用 | |
| 输出控制 | ps -o pid,cmd |
自定义输出列(PID和命令名) |
ps --no-headers |
不显示表头 | |
| 筛选参数 | ps -ef | grep nginx |
筛选包含“nginx”的进程 |
ps -C nginx |
直接筛选nginx进程 | |
| 排序参数 | ps --sort=-%cpu |
按CPU使用率降序排列 |
参数详解与实例
-
ps aux:
显示所有进程的详细信息,包括用户(USER)、PID、CPU占用率(%CPU)、内存占用率(%MEM)、虚拟内存大小(VSZ)、物理内存大小(RSS)、终端(TTY)、进程状态(STAT)、启动时间(START)和命令(CMD)。ps aux | head -n 5
输出示例:
(图片来源网络,侵删)USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND user 1234 5.2 3.1 123456 78900 pts/0 Sl+ 10:30 0:05 /usr/bin/firefox -
ps -ef:
以BSD风格显示所有进程,包含PPID(父进程ID)信息。ps -ef | grep systemd
-
ps -o自定义输出:
若仅需查看进程ID和命令,可使用:ps -o pid,cmd,etime
其中
etime表示进程运行时间。
高级技巧与常见场景
-
实时监控进程
结合watch命令实现动态刷新:watch -n 1 "ps aux --sort=-%cpu | head -n 10"
每1秒刷新一次,并显示CPU占用率最高的前10个进程。
-
查找僵尸进程
僵尸进程(STAT为Z)已终止但未被父进程回收,可通过以下命令查找:ps -elf | grep Z
-
终止进程
结合kill命令终止指定PID的进程:ps aux | grep "problem_process" kill -9 <PID> # 强制终止
注意事项
- 权限问题
普通用户只能查看自己的进程,需sudo才能查看系统所有进程(如sudo ps aux)。 - 参数兼容性
不同Linux发行版的ps参数可能略有差异,建议通过man ps查看手册。
相关问答FAQs
Q1: 为什么ps命令显示的CPU占用率为0,但系统却很卡顿?
A1: 可能是大量I/O操作或系统调用导致,可通过iostat -x查看磁盘I/O状态,或top命令进一步分析进程的I/O等待时间(%wa),若问题持续,需检查磁盘健康状态或硬件性能瓶颈。
Q2: 如何通过ps命令查找特定用户的进程?
A2: 使用-u参数指定用户名,例如查找用户“www-data”的所有进程:
ps -u www-data
或结合grep筛选:
ps aux | grep "^www-data"
