在Linux系统中,进程(Process)是程序运行时的实例,就像一个正在执行的“任务”。管理进程可以帮助我们查看系统中哪些程序在运行、监控资源占用情况,以及在程序异常时终止它们。对于新手来说,掌握几个核心的进程管理命令,能快速解决日常遇到的问题。
一、查看进程:ps 命令¶
作用:ps 是最基础的进程查看工具,能列出当前系统中运行的进程状态。
基本用法:直接输入 ps 或带参数,常用组合是 ps -aux 或 ps -ef(a 显示所有用户进程,u 显示详细用户信息,x 显示无终端的进程;e 显示所有进程,f 显示完整格式)。
示例:
输入 ps -aux,会看到类似以下输出(简化版):
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19560 1164 ? Ss 10:00 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S 10:00 0:00 [kthreadd]
...
关键列解释:
- PID:进程ID(唯一标识,后续操作的“身份证号”);
- USER:运行进程的用户;
- %CPU/%MEM:CPU和内存占用率;
- STAT:进程状态(R=运行、S=睡眠、Z=僵尸进程等);
- COMMAND:启动进程的命令。
二、实时监控进程:top 命令¶
作用:top 比 ps 更强大,能动态实时更新进程信息,适合监控系统负载和资源变化。
基本用法:直接输入 top,界面会自动刷新(默认3秒一次)。
常用操作:
- 按 P:按CPU使用率从高到低排序;
- 按 M:按内存使用率从高到低排序;
- 按 k:终止进程(输入目标PID,按回车);
- 按 q:退出 top。
注意:top 会持续运行,按 q 退出,不要直接关闭终端窗口(否则进程可能继续占用资源)。
三、终止进程:kill 和 killall¶
作用:当程序卡死或异常时,需要终止进程。kill 通过PID终止,killall 通过进程名终止。
1. kill 命令¶
- 用法:
kill [信号] PID(信号默认是15,正常终止;9=强制终止)。 - 示例:
# 先通过ps找到目标进程PID,比如“firefox”的PID是1234
ps -aux | grep firefox
# 终止进程(先尝试正常终止)
kill 1234
# 若进程无响应,强制终止
kill -9 1234
- 注意:
-9是“硬终止”,可能导致数据丢失(如未保存的文件),仅在程序无响应时使用。
2. killall 命令¶
- 用法:
killall [信号] 进程名(直接按名称终止,无需找PID)。 - 示例:
# 终止所有名为“firefox”的进程
killall -9 firefox
- 优势:适合知道进程名但记不住PID的场景,比逐个
kill更高效。
四、进程树状图:pstree¶
作用:以树状图显示进程的父子关系,直观展示程序的层级结构。
基本用法:直接输入 pstree,或加参数 p(显示PID)、a(显示完整路径)。
示例:
pstree -ap
# 输出类似:
systemd(1)───sshd(1234)───bash(5678)───pstree(9012)
优势:快速理解程序之间的依赖关系(如 bash 是 pstree 的父进程)。
五、后台作业管理:jobs、bg、fg¶
场景:在终端运行程序时,不想一直占用前台(如编译代码、下载大文件)。
1. jobs 命令¶
- 作用:查看后台暂停的作业(用
Ctrl+Z暂停的任务)。
2. bg 和 fg¶
bg:将后台暂停的作业恢复为运行状态(bg %作业号,作业号在jobs中显示)。fg:将后台作业调回前台运行(fg %作业号)。
示例:
# 启动一个长时间任务(如编译),后台运行
make -j8 &
# 若中途想暂停,按 Ctrl+Z,终端显示:[1]+ Stopped make -j8
# 查看后台作业:jobs
# 恢复后台运行:bg 1
# 调回前台:fg 1
新手注意事项¶
- 不要终止系统关键进程:如
init、systemd、sshd等,否则系统可能崩溃。 - 确认PID再操作:用
ps或pgrep(按名查PID)确认进程PID,避免误杀。 - 普通用户权限:普通用户只能终止自己启动的进程,终止其他用户进程需
sudo或root权限。
掌握以上命令,就能应对Linux系统中90%的进程管理场景。日常工作中,ps 查进程、top 监控资源、kill 终止异常进程是最核心的组合。遇到问题时,可通过 man 命令 查看详细手册(如 man ps),多练习就能熟练使用!