linux运维高频命令约20个,覆盖文件操作(如ls -lht、cp -rav)、系统监控(top、free -h)、网络诊断(ping、ss、curl)及日志分析(tail -f、grep、awk),掌握可解决80%日常问题。

Linux运维中真正高频、几乎每天都要用的命令,其实就那么二十来个,掌握它们能解决80%以上的日常问题。 不必死记硬背,关键是理解场景、记住常用选项、养成规范习惯。
文件与目录操作:最基础也最容易出错
这些命令看似简单,但权限、路径、通配符稍不注意就会误删或查不到:
- ls -lht:按修改时间倒序列出详细信息(-h 自动转换单位,-t 按时间排序)
- cd -:快速返回上一个工作目录(比反复输入路径高效得多)
- pwd -P:显示真实物理路径(绕过符号链接,排查软链陷阱)
- cp -rav /src/ /dst/:递归、归档、显示过程、保留属性(-a = -r -p -d -l -s 等组合)
- rm -rfv dir/:强制递归删除并反馈(务必先确认路径,建议加 -i 交互确认首次使用)
- find /var/log -name "*.log" -mtime +7 -delete:清理7天前的日志(-delete 安全起见可先用 -print 替代测试)
系统状态与进程管理:定位卡顿和异常的核心
出问题时先看这组命令,5分钟内基本能判断是CPU、内存、IO还是进程本身的问题:
- top 或 htop(需安装):实时看CPU/内存占用,按 P(CPU)、M(内存)、T(运行时间)排序
- ps aux --sort=-%cpu | head -10:查当前CPU消耗最高的10个进程
- free -h:看内存和swap使用(重点关注 available 列,不是 free)
- df -hT:看各挂载点空间和文件系统类型(-T 显示type,避免xfs/ext4混用导致误判)
- iotop -o:只显示正在做IO的进程(需root,定位磁盘瓶颈利器)
- systemctl status nginx:查服务状态;journalctl -u nginx -n 50 -f:实时跟踪最近50行日志
网络与端口诊断:服务连不上?先跑这几句
从底层连通性到应用层端口,层层递进排查:
- ping -c 4 example.com:基础连通性(-c 控制次数,避免卡住)
- telnet host port 或 nc -zv host port:测试TCP端口是否可达(nc 更现代,无依赖)
- ss -tuln | grep :22:查看监听22端口的进程(比 netstat 更快,-n 不解析域名)
- curl -I http://localhost:8080:检查HTTP服务响应头(-I 只取header,轻量)
- tcpdump -i eth0 port 80 -w /tmp/http.pcap:抓包分析(-w 保存文件,后续可用Wireshark分析)
日志与文本处理:线上问题80%靠它定位
日志是系统“黑匣子”,掌握这几个组合技,查问题事半功倍:
- tail -n 100 -f /var/log/messages:实时追加查看最后100行(-f 持续刷新)
- grep "ERROR\|timeout" /var/log/app.log | head -20:快速过滤关键错误
- awk '{print $1,$9}' access.log | sort | uniq -c | sort -nr | head -5:统计访问最多的IP和状态码
- sed -i 's/old/new/g' config.conf:原地替换配置(-i 备份风险高,生产环境建议先 -i.bak)
- zcat app.log.20240501.gz | grep "500" | wc -l:直接读压缩日志并统计500错误数










