top 是 Linux/Unix 系统中实时监控系统资源的命令行工具,可以动态查看 CPU、内存、进程 等系统状态。它类似于 Windows 的任务管理器,但功能更强大。
1. top 命令基本使用
(1)启动 top
top
默认界面:
- 第1行:系统运行时间、用户数、负载(1/5/15 分钟)
- 第2行:任务总数(运行、休眠、停止、僵尸)
- 第3行:CPU 使用率(用户、系统、空闲、等待等)
- 第4行:内存使用情况(总内存、空闲、缓存)
- 第5行:交换分区(Swap)使用情况
- 下方列表:进程详细信息(PID、用户、CPU%、内存%、命令等)
2. top 交互命令
在 top 运行时,可以按以下快捷键进行交互:
| 快捷键 | 说明 |
|---|---|
q | 退出 top |
h | 显示帮助 |
k | 终止进程(输入 PID) |
r | 修改进程优先级(renice) |
Shift + P | 按 CPU 使用率 排序 |
Shift + M | 按 内存使用率 排序 |
Shift + T | 按 运行时间 排序 |
Shift + N | 按 PID 排序 |
1 | 显示所有 CPU 核心的详细使用情况 |
b | 高亮显示运行中的进程 |
u | 只显示某个用户的进程 |
z | 切换颜色显示 |
W | 保存当前配置到 ~/.toprc |
3. top 命令行选项
| 选项 | 说明 |
|---|---|
top -d 2 | 设置刷新间隔为 2 秒 |
top -n 5 | 只刷新 5 次后退出 |
top -p 1234 | 只监控 PID 为 1234 的进程 |
top -u root | 只显示 root 用户的进程 |
top -b | 以批处理模式运行(适合脚本) |
top -H | 显示线程(结合 -p 查看某个进程的线程) |
4. top 输出字段详解
| 字段 | 说明 |
|---|---|
| PID | 进程 ID |
| USER | 进程所属用户 |
| PR | 进程优先级 |
| NI | nice 值(优先级调整) |
| VIRT | 虚拟内存使用量(KB) |
| RES | 物理内存使用量(KB) |
| SHR | 共享内存(KB) |
| %CPU | CPU 使用率 |
| %MEM | 内存使用率 |
| TIME+ | 进程运行时间 |
| COMMAND | 进程命令 |
5. top 使用示例
(1)查看 CPU 占用最高的进程
top -o %CPU
或进入 top 后按 Shift + P。
(2)查看某个用户(如 nginx)的进程
top -u nginx
或进入 top 后按 u,再输入用户名。
(3)监控某个进程(如 PID 1234)
top -p 1234
(4)查看线程(适用于多线程程序)
top -H -p 1234
(5)以批处理模式输出到文件
top -b -n 1 > top_output.txt
6. top 高级技巧
(1)高亮显示运行中的进程
进入 top 后按 b,运行中的进程会高亮显示。
(2)修改刷新间隔
top -d 1 # 每秒刷新一次
或在 top 运行时按 d,输入新的刷新时间。
(3)保存当前 top 配置
按 W 保存当前排序、颜色等设置到 ~/.toprc。
7. 类似命令
| 命令 | 说明 |
|---|---|
htop | 更友好的交互式 top(需安装) |
vmstat | 查看 CPU、内存、IO 状态 |
ps aux | 静态查看进程 |
glances | 更强大的系统监控工具 |
8. 总结
top是 Linux 系统监控的核心工具,可实时查看 CPU、内存、进程。- 常用交互命令:
Shift + P(按 CPU 排序)Shift + M(按内存排序)k(杀死进程)u(筛选用户)
- 命令行选项:
-d(刷新间隔)-p(监控特定进程)-H(查看线程)
- 替代工具:
htop、glances提供更友好的界面。
掌握 top 可以快速定位系统性能瓶颈!🚀