作为运维工程师与后端开发,日常服务器运维、线上故障排查都离不开 Linux 命令。基础命令只能完成简单的文件切换、内容查看,而高阶运维命令才是定位性能瓶颈、分析日志异常、管控进程资源、排查网络磁盘故障的核心工具。

线上生产环境经常遇到服务器负载飙高、日志报错刷屏、磁盘空间爆满、网络链路中断、进程僵死等问题,若只会基础命令,排障效率会大打折扣。本文结合生产实战经验,将运维高频高阶命令按系统监控、日志分析、进程管理、磁盘运维、网络调试五大核心场景分类,拆解每条命令的核心用途、常用参数与落地实战用法,规避死记参数的误区,直接拿来就能用,适合运维新人入门、老手收藏备查。

一、系统性能监控与瓶颈定位

服务器卡顿、响应超时、资源耗尽时,首要工作就是排查 CPU、内存、磁盘 IO 的占用情况,以下 3 条命令是性能诊断的标配。

1. top 系统动态监控

top 是 Linux 自带的实时系统监控工具,可动态刷新全局 CPU、内存、各进程资源占用,是排查系统负载过高的第一选择。

  • 常用核心参数
    • top -d 2:设置刷新间隔为 2 秒(默认 3 秒)
    • top -p 1234:只监控 PID 为 1234 的指定进程
    • top -u root:过滤仅展示 root 用户下的进程
  • 交互快捷操作
    • 按下 P:按 CPU 占用率降序排序
    • 按下 M:按内存占用率降序排序
    • 按下 q:退出监控界面

2. htop top 增强升级版

推荐生产环境优先安装使用,完美兼容 top 所有功能,解决了 top 界面简陋、操作繁琐的痛点。

  • 核心优势:支持鼠标操作、树形展示进程父子关系、色彩区分资源状态
  • 常用快捷操作
    • F2:自定义监控展示列、调整刷新频率
    • F4:关键词快速筛选目标进程
    • F9:直接向进程发送终止、暂停等操作信号

3. iostat 磁盘 IO 专项分析

专门用于排查磁盘性能瓶颈,精准监控磁盘读写速度、IO 利用率、请求响应时间,区分是磁盘硬件故障还是应用频繁读写导致的卡顿。

  • 核心用法
    • iostat -d -x 1:只展示磁盘 IO 扩展信息,每秒刷新一次
    • iostat -d -x 1 sda:单独监控 sda 磁盘分区状态
  • 关键字段解读
    • %util:磁盘 IO 利用率,持续超过 80% 基本判定 IO 瓶颈
    • rMB/s/wMB/s:磁盘每秒读写流量
    • await:IO 请求平均响应时间,数值过高代表磁盘处理缓慢

二、日志排查与文本智能处理

线上服务报错、接口异常、业务逻辑故障,80% 都需要通过日志定位根源。tailgrepawk构成日志分析铁三角,高效完成日志跟踪、关键词过滤、结构化统计。

1. tail 日志实时跟踪

主要用于查看日志末尾内容,支持实时监听日志新增数据,是线上实时排障必备。

  • 实战用法
    • tail -n 100 app.log:查看日志最后 100 行内容
    • tail -f app.log:实时跟踪日志新增内容
    • tail -F app.log:超强适配日志切割场景,日志文件删除重建后自动续连监听

2. grep 关键词精准过滤

支持普通字符串与正则匹配,可快速从海量日志中筛选错误、告警信息,还能递归检索全目录日志。

  • 常用参数
    • grep -i "error" app.log:忽略大小写匹配关键词
    • grep -n "ERROR" app.log:匹配结果显示行号,快速定位日志位置
    • grep -C 5 "ERROR" app.log:展示错误行前后 5 行上下文,梳理报错原因
    • grep -r "Exception" /var/log/:递归检索指定目录下所有日志文件

3. awk 结构化日志分析

擅长按列拆分文本,适配 Nginx、Tomcat 等结构化日志,可实现 IP 提取、请求过滤、访问量统计等高级操作。

  • 实战案例
    1. 提取 Nginx 日志所有客户端 IP:awk '{print $1}' nginx.access.log
    2. 筛选响应时间超 100ms 的请求:awk '$10>100' nginx.access.log
    3. 统计每个 IP 的访问次数:awk '{count[$1]++} END{for(ip in count) print ip, count[ip]}' nginx.access.log

三、进程管理与异常故障恢复

服务宕机、进程僵死、子进程异常衍生时,需要快速查看进程状态、梳理父子关系、终止异常进程。

1. ps 进程静态快照

静态查看系统所有进程信息,获取 PID、运行用户、资源占用等核心数据,常搭配管道筛选指定服务进程。

  • 高频组合命令
    • ps -ef | grep java:查看所有 Java 相关进程
    • ps aux:按资源占用排序展示所有进程,适合查找高占用异常进程

2. pstree 进程树形展示

以树形结构直观呈现进程父子关系,专门用于排查守护进程异常、子进程僵死、进程启动失败等问题。

  • 常用用法
    • pstree -p:展示进程树并附带 PID 编号
    • pstree root:只展示 root 用户名下的所有进程树

四、磁盘存储排查与文件精细化管理

磁盘空间爆满、inode 耗尽、大文件占用资源等存储问题,依靠dfdufind三条命令即可快速定位解决。

1. df 磁盘分区使用率

查看系统各磁盘分区容量、已用空间、使用率,是排查磁盘爆满的第一道关口。

  • 常用参数
    • df -h:人性化 GB/MB 格式展示分区大小,直观易懂
    • df -i:查看 inode 使用率,解决磁盘有空间但无法创建文件的隐藏问题

2. du 文件目录占用统计

精准查看单个文件或目录的实际占用大小,解决 df 显示磁盘满却找不到大文件的痛点。

  • 实战用法
    • du -sh /var/log/:汇总查看日志目录总占用大小
    • du -h --max-depth=1 /:查看根目录下一级目录占用,快速定位大文件夹
    • du -h /var/log/ | sort -nr | head -10:排序找出目录下最大的 10 个文件

3. find 文件精准检索

可按文件大小、修改时间、权限等多条件递归查找文件,常用于清理过期日志、定位超大垃圾文件。

  • 生产常用案例
    1. 查找根目录下大于 100MB 的文件:find / -size +100M -type f
    2. 查找 7 天前的历史日志:find /var/log/ -mtime +7 -type f
    3. 批量删除 7 天前过期日志:find /var/log/ -mtime +7 -type f -exec rm -rf {} \;

五、网络连通性与路由故障调试

服务无法访问、网络延迟高、链路丢包时,通过网络命令快速检测连通性、追踪路由节点、定位故障断点。

1. ping 基础连通检测

测试主机间网络连通性,判断目标服务器是否可达、网络延迟是否超标。

  • 常用参数
    • ping -c 4 192.168.1.1:发送 4 个数据包后自动终止,适配脚本调用
    • ping -i 2 192.168.1.1:设置每 2 秒发送一个探测包

2. traceroute /mtr 路由追踪

  • traceroute:追踪数据包从本机到目标地址经过的所有路由节点,定位网络中断的网关位置
  • mtr:ping 与 traceroute 的整合升级版,生产环境首选。可实时统计每个路由节点的丢包率、平均延迟,故障定位更精准,用法:mtr www.baidu.com

六、运维实战核心技巧总结

  1. 优先选用增强工具:用 htop 替代 top、mtr 替代 traceroute,功能更强、操作更人性化,大幅提升排障效率;
  2. 善用管道组合命令:单条命令能力有限,结合|管道可实现筛选、排序、统计一站式批量操作;
  3. 摒弃死记参数思维:无需熟记所有参数,掌握核心场景用法,复杂参数按需查阅即可;
  4. 线上操作严守谨慎:find 批量删除、kill 终止进程等高危操作,务必先查询确认,避免误操作引发生产事故。

写在最后

以上五大场景的高阶 Linux 命令,覆盖了运维日常 90% 的故障排查、服务器巡检、资源管控需求。建议先在测试环境熟悉命令用法,理解背后的使用场景,而非机械背诵。后续我会持续分享 Linux 运维命令组合实战、线上故障排障流程等干货,欢迎点赞、收藏、关注,一起精进运维技术!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐