linux下有关进程相关命令详解
linux下有关进程相关命令详解详细介绍
在 Linux 系统中,进程管理是系统管理的核心部分之一。以下是常用的进程相关命令详解,涵盖进程查看、监控、控制、终止等操作:
一、查看进程状态
1.
ps:静态查看进程信息(最常用)
- 功能:显示当前系统中的进程快照(瞬间状态)。
- 语法:
ps [选项] - 常用选项:
- BSD 风格(常用组合):
ps aux:显示所有用户的进程,包含详细信息。a:显示终端上的所有进程(包括其他用户)。u:以用户格式显示(显示用户名、CPU、内存等)。x:显示无终端的进程(后台服务等)。
- System V 风格:
ps -ef:显示全格式进程信息(更适合查看进程树)。-e:显示所有进程。-f:显示完整格式(包含父进程 PID、命令完整路径等)。
- BSD 风格(常用组合):
- 输出列说明(以
ps aux为例):USER:进程所属用户。PID:进程 ID。%CPU:CPU 使用率。%MEM:内存使用率。VSZ:虚拟内存大小(KB)。RSS:常驻内存大小(KB)。TTY:进程关联的终端(?表示无终端)。STAT:进程状态(R运行,S睡眠,D不可中断睡眠,Z僵尸进程,T停止,s会话 leader,+前台进程)。START:进程启动时间。TIME:累计 CPU 时间。COMMAND:进程执行的命令(完整命令可通过-f查看)。
- 示例:bash
aux nginx
2.
pgrep:按条件快速查找进程 PID
- 功能:通过名称、用户、进程状态等条件搜索进程 PID。
- 语法:
pgrep [选项] [关键词] - 常用选项:
-u <用户>:指定用户的进程(如-u root)。-l:显示进程名称。-x:精确匹配进程名称(完全一致)。-f:匹配命令行中的任意字符串(而非仅进程名)。
- 示例:bash
pgrep sshdpgrep firefox
pgrep ubuntu httpd
二、实时监控进程
1.
top:动态实时监控进程(交互式)
- 功能:实时显示系统资源(CPU、内存、进程等)的使用情况,支持交互式操作。
- 语法:
top - 常用交互命令(运行中按以下按键):
P:按 CPU 使用率排序(默认)。M:按内存使用率排序。N:按 PID 排序。k:输入 PID 后终止指定进程(发送SIGTERM信号)。q:退出top。u:输入用户名,仅显示该用户的进程。
- 输出列说明(部分关键列):
%CPU:单个进程的 CPU 使用率。%MEM:单个进程的内存使用率。NI:进程优先级(nice 值,范围-20(最高优先级)到19(最低优先级))。TIME+:进程累计运行时间(精确到秒)。
2.
htop:增强版
top(需安装)
- 功能:比
top更直观,支持鼠标操作、进程树查看、颜色标记等。 - 安装(以 Debian/Ubuntu 为例):
sudo apt install htop - 特点:
- 可横向滚动查看完整命令行。
- 显示每个进程的线程数。
- 支持直接终止、暂停进程(通过方向键和功能键操作)。
三、终止进程
1.
kill:向进程发送信号(最常用)
- 功能:通过进程 PID 发送信号,终止或控制进程。
- 语法:
kill [信号] PID或kill -信号 PID - 常用信号:
1(SIGHUP):重新加载配置(如kill -HUP PID)。9(SIGKILL):强制终止进程(无法被忽略或捕获,最后手段)。15(SIGTERM):正常终止进程(默认信号,建议优先使用)。2(SIGINT):等价于Ctrl+C,终止前台进程。
- 示例:bash
2.
pkill:按条件终止进程(结合
pgrep 的功能)
- 功能:通过名称、用户等条件批量终止进程,无需手动获取 PID。
- 语法:
pkill [选项] [关键词] - 常用选项(类似
pgrep):-u <用户>:终止指定用户的进程。-f:匹配命令行中的任意字符串。-9:发送SIGKILL信号(强制终止)。
- 示例:bash
firefoxubuntu httpd
四、作业控制(终端内进程管理)
1.
jobs:查看当前终端的后台作业
- 功能:显示通过
&放到后台的进程或被挂起的作业。 - 语法:
jobs - 输出示例:bash
+ Running firefox- Stopped
[1]:作业编号。+:默认作业(可用fg/bg直接操作)。-:次默认作业。
2.
bg:将暂停的作业放到后台运行
- 语法:
bg [作业编号] - 示例:bash
3.
fg:将后台作业切换到前台
- 语法:
fg [作业编号] - 示例:bash
4.
Ctrl+Z:挂起前台进程(暂停并放入后台)
- 操作:在前台进程运行时按
Ctrl+Z,进程状态变为Stopped,可通过bg恢复运行。
五、调整进程优先级
1.
nice:启动进程时设置优先级
- 功能:在创建进程时指定其 nice 值(影响 CPU 调度优先级)。
- 语法:
nice [-n 优先级] 命令 - 优先级范围:
-20(最高优先级)到19(最低优先级,默认 0)。 - 示例:bash
./compile.sh
2.
renice:修改正在运行进程的优先级
- 功能:调整已有进程的 nice 值。
- 语法:
renice [-n 优先级] -p PID - 示例:bash
六、其他相关命令
1.
ps -eF 或
pstree:查看进程树
- 功能:显示进程的父子关系(树形结构)。
- 示例:bash
pstree
2.
lsof:查看进程打开的文件 / 端口
- 功能:通过进程 PID 或文件名,查看进程关联的文件、网络连接等。
- 示例:bash
3.
netstat -ap 或
ss -tunlp:查看网络相关进程
- 功能:结合端口号查看对应的进程(常用于排查端口占用)。
- 示例:bash
ss :80
总结:常用场景与命令
| 场景 | 命令 | |
|---|---|---|
| 查看所有进程 | ps aux(简洁)、ps -ef(完整) |
|
| 实时监控进程 | top(基础)、htop(增强) |
|
| 按名称查找进程 PID | pgrep 进程名 |
|
| 终止单个进程 | kill PID(正常终止)、kill -9 PID(强制终止) |
|
| 按名称终止进程 | pkill 进程名(支持模糊匹配) |
|
| 管理终端后台作业 | jobs、bg、fg、Ctrl+Z |
|
| 调整进程优先级 | nice(启动时)、renice(运行中) |
|
| 查看进程树 | pstree -p |
|
| 查看端口占用的进程 | lsof -i:端口 或 `ss -tunlp |
grep 端口 ` |
注意事项
- 强制终止(
SIGKILL):可能导致数据丢失或程序异常,优先使用SIGTERM(默认kill信号)。 - 僵尸进程(
Z状态):若进程状态为Z(僵尸),需通过重启其父进程或系统解决(无法直接杀死)。 - 权限问题:部分操作(如调整优先级、终止其他用户进程)需
root或sudo权限。
通过以上命令,可全面管理 Linux 系统中的进程,满足日常监控、调试和故障排查需求。