一、系统监控命令
1. 实时监控
| 命令 | 核心参数 | 说明 | 示例 |
|---|---|---|---|
top |
-p PID-d 秒数 |
动态进程监控 | top -d 1(1秒刷新)top -p 1234(监控指定进程) |
htop |
-u 用户-s 列名 |
增强版top(需安装) | htop -u root(显示root进程) |
glances |
--disable-plugin 插件名 |
全能监控工具 | glances -w(启动web服务) |
top交互命令:
P:按CPU排序M:按内存排序k:终止进程f:自定义显示字段
2. 静态监控
| 命令 | 常用参数 | 说明 | 示例 | |
|---|---|---|---|---|
ps |
aux-ef--forest |
进程快照 | `ps aux \ | grep nginx<br>ps -eo pid,ppid,cmd,%mem --sort=-%mem` |
free |
-h-s 秒数 |
内存监控 | free -h(易读格式)free -s 5(5秒刷新) |
|
vmstat |
1 5 |
虚拟内存统计 | vmstat 1 5(每秒1次共5次) |
二、性能分析工具
1. I/O监控
| 命令 | 参数 | 说明 | 示例 |
|---|---|---|---|
iostat |
-x 1-d sda |
磁盘IO统计 | iostat -x 1(扩展信息) |
iotop |
-o-P |
实时磁盘IO监控 | iotop -o(只显示有IO的进程) |
2. 网络监控
| 命令 | 参数 | 说明 | 示例 |
|---|---|---|---|
iftop |
-i eth0-n |
实时流量监控 | iftop -i eth0(指定网卡) |
nload |
-u M-m |
带宽使用监控 | nload eth0 -u M(显示MB单位) |
3. 性能分析
| 命令 | 参数 | 说明 | 示例 |
|---|---|---|---|
perf |
statrecordreport |
系统级性能分析 | perf stat ls(基础统计)perf record -g(记录调用栈) |
strace |
-p PID-e trace=file |
系统调用跟踪 | strace -p 1234(跟踪进程) |
三、进程管理命令
1. 进程操作
| 命令 | 参数 | 说明 | 示例 |
|---|---|---|---|
kill |
-9-15 |
发送信号 | kill -9 1234(强制终止)kill -15 1234(优雅终止) |
pkill |
-u 用户-f 模式 |
按名称杀进程 | pkill -f "python app.py" |
nice |
-n 值 |
调整优先级 | nice -n 19 ./script.sh(最低优先级) |
2. 后台管理
| 命令 | 说明 | 示例 |
|---|---|---|
jobs |
查看后台任务 | jobs -l |
fg %n |
切到前台 | fg %1 |
bg %n |
后台继续运行 | bg %2 |
四、网络诊断工具
1. 连接分析
| 命令 | 参数 | 说明 | 示例 | |
|---|---|---|---|---|
netstat |
-tunlp-s |
网络连接统计 | `netstat -tunlp \ | grep 80` |
ss |
-s-tnlp |
netstat替代品 | ss -s(汇总统计) |
|
lsof |
-i :端口-p PID |
查看打开文件 | lsof -i :80(查看80端口进程) |
2. 连通性测试
| 命令 | 参数 | 说明 | 示例 |
|---|---|---|---|
ping |
-c 次数-i 间隔 |
ICMP测试 | ping -c 5 google.com |
traceroute |
-n-T |
路由追踪 | traceroute -n 8.8.8.8 |
mtr |
-r-c 次数 |
实时路由跟踪 | mtr -r -c 100 google.com |
3. 高级抓包
| 命令 | 参数 | 说明 | 示例 |
|---|---|---|---|
tcpdump |
-i any-w 文件port 80 |
网络抓包 | tcpdump -i eth0 port 80 -w capture.pcap |
tshark |
-Y 过滤-r 文件 |
Wireshark命令行版 | tshark -i eth0 -Y "http.request" |
五、日志分析工具
1. 实时日志
| 命令 | 参数 | 说明 | 示例 |
|---|---|---|---|
tail |
-f-n 行数 |
跟踪日志 | tail -f /var/log/nginx/access.log |
multitail |
-l 文件 |
多窗口日志监控 | multitail /var/log/syslog /var/log/auth.log |
2. 日志分析
| 命令 | 参数 | 说明 | 示例 |
|---|---|---|---|
grep |
-E-C 行数 |
模式匹配 | grep "ERROR" app.log -C 3(显示上下文) |
awk |
-F 分隔符 |
字段处理 | awk -F':' '{print $1}' /etc/passwd |
sed |
-ns/old/new/g |
流编辑器 | sed -n '10,20p' file.log(显示10-20行) |
六、系统调试工具
1. 核心工具
| 命令 | 参数 | 说明 | 示例 | |
|---|---|---|---|---|
dmesg |
-T-l err |
内核日志 | `dmesg -T \ | grep error`(带时间戳) |
journalctl |
-u 服务--since |
systemd日志 | journalctl -u nginx --since "2023-08-01" |
2. 调试分析
| 命令 | 参数 | 说明 | 示例 |
|---|---|---|---|
gdb |
-p PID-ex 命令 |
程序调试器 | gdb -p 1234(附加进程) |
ldd |
无 | 查看依赖库 | ldd /usr/bin/nginx |
strace |
-c-o 文件 |
系统调用跟踪 | strace -c ls(统计调用次数) |
七、组合使用示例
1. 查找高CPU进程
ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head -n 6
2. 分析网络连接
ss -tnp | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
3. 实时监控组合
watch -n 1 "echo 'Memory:'; free -h; echo; echo 'Disk:'; df -h /"
八、实用技巧
-
命令历史增强:
Ctrl+R # 搜索历史命令 !$ # 上条命令的最后一个参数 !! # 执行上条命令 -
快速跳转目录:
pushd /var/log # 存入目录栈 popd # 返回之前目录 -
时间统计命令:
time ls -R / # 显示命令执行时间 /usr/bin/time -v ./program # 详细资源使用