基础命令:ps
(进程状态)
最常用的进程查看工具,功能强大且预装在所有 Linux 发行版。
常用组合:
ps aux # 查看所有用户进程(BSD风格) ps -ef # 查看所有进程(标准UNIX风格)
输出列解读:
USER
:进程所有者PID
:进程ID(唯一标识)%CPU
/%MEM
:CPU/内存占用率VSZ
:虚拟内存大小(KB)RSS
:实际物理内存(KB)TTY
:关联的终端STAT
:进程状态(如S
=休眠,R
=运行,Z
=僵尸)START
:启动时间COMMAND
:执行的命令
进阶示例:
ps aux --sort=-%cpu | head -10 # 按CPU占用降序显示前10进程 ps -p 1234 -o pid,cmd,start # 查看指定PID的进程信息
动态监控:top
与 htop
实时刷新进程状态,适合持续监控。
top
(系统自带):
top
- 交互操作:
- 按
P
:按CPU使用排序 - 按
M
:按内存使用排序 - 按
k
:终止进程(需输入PID) - 按
q
:退出
- 按
- 顶部显示系统负载、任务总数和CPU/内存概况。
htop
(增强版,需安装):
sudo apt install htop # Debian/Ubuntu sudo yum install htop # CentOS/RHEL htop
优势:
- 彩色界面,支持鼠标操作
- 树状结构展示父子进程
- 一键终止进程(
F9
)或调整优先级(F7
/F8
)
进程树视图:pstree
以树形结构展示进程关系,直观显示父子进程依赖:
pstree -p # 显示PID pstree -u # 显示用户名
输出示例:
systemd(1)─┬─sshd(1234)───bash(5678)───vim(9012)
└─nginx(3456)─┬─nginx(3457)
└─nginx(3458)
快速检索进程
pgrep
:根据名称查找PID
pgrep -l nginx # 输出:"9012 nginx" pgrep -u root # 列出root用户的所有进程
pidof
:直接获取进程PID
pidof nginx # 输出:"3456 3457 3458"
图形化工具
适合桌面用户,无需命令行:
- GNOME 系统监视器(Ubuntu/Fedora):
通过应用菜单搜索 “System Monitor”,可查看/结束进程,监控资源。 - KSysGuard(KDE 桌面):
功能类似,集成于KDE环境。
特殊文件系统:/proc
目录
Linux 内核通过虚拟文件系统 /proc
暴露进程信息:
ls /proc/1234 # 查看PID为1234的进程信息 cat /proc/1234/cmdline # 查看启动命令 cat /proc/1234/status # 查看详细状态(内存、信号等)
常见问题解决
- 进程无响应:
kill -9 $(pgrep 进程名) # 强制终止
- 内存泄漏定位:
top -o %MEM # 按内存占用排序
- 僵尸进程清理:
先终止其父进程(通过pstree
查找)。
安全与权限说明
- 普通用户只能查看/管理自己的进程。
root
用户可操作所有进程(命令前加sudo
)。- 敏感操作(如终止系统进程)需谨慎,可能导致系统不稳定。
总结建议
场景 | 推荐工具 |
---|---|
快速快照 | ps aux |
实时监控 | top 或 htop |
分析进程关系 | pstree |
精确检索PID | pgrep /pidof |
桌面环境 | 图形系统监视器 |
掌握这些方法可覆盖 99% 的进程管理需求,建议通过 man 命令名
(如 man ps
)查阅手册获取更高级用法。
引用说明参考 Linux man-pages 项目(kernel.org/doc/man-pages/)、GNU Coreutils 文档(www.gnu.org/software/coreutils/)及 Red Hat 系统管理指南,所有命令均通过 Ubuntu 22.04 和 CentOS 7 实测验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6628.html