
1. Linux运维必备15个高频命令解析作为Linux系统管理员或开发者熟练掌握常用命令是基本功。这些命令不仅能提升工作效率还能在关键时刻快速定位和解决问题。本文将分享15个最实用的Linux网络和文件操作命令每个命令都经过实战验证附带详细的使用场景和技巧。提示所有命令在CentOS/RHEL 7和Ubuntu 18.04测试通过部分命令可能需要root权限1.1 网络诊断三剑客1.1.1 ping基础连通性测试ping -c 4 www.example.com # 发送4个测试包后自动停止 ping -i 0.5 www.example.com # 设置0.5秒间隔 ping -s 1000 www.example.com # 设置数据包大小为1000字节常见问题出现Destination Host Unreachable可能是本地路由问题持续高延迟可能表示网络拥塞完全不通时尝试加-I指定源接口1.1.2 traceroute路由追踪专家traceroute www.example.com traceroute -n www.example.com # 不解析IP为域名 traceroute -T -p 443 www.example.com # TCP方式测试443端口实测技巧星号(*)节点可能配置了ICMP过滤结合mtr工具可获得更动态的路由质量数据企业内网常禁用UDP traceroute需改用TCP方式1.1.3 netstat/ss连接状态分析传统netstatnetstat -tulnp # 查看监听端口 netstat -antp # 查看所有TCP连接现代替代品ssss -ltn # 监听TCP端口(数字显示) ss -o state established ( dport :443 ) # 查看所有到443的已建立连接关键区别ss直接读取内核数据速度更快ss显示更详细的TCP状态信息netstat在某些旧系统仍是唯一选择1.2 文件操作四天王1.2.1 rsync智能同步利器基础同步rsync -avz /local/path userremote:/remote/path # 归档模式压缩高级用法rsync --delete --exclude*.tmp -e ssh -p 2222 /src/ userhost:/dst/ # 删除目标多余文件排除tmp文件指定SSH端口 rsync -avz --progress --partial /large/file userremote:/path # 支持断点续传避坑指南路径结尾有无/区别很大有/同步目录内容无/同步目录本身首次同步建议先加--dry-run测试网络不稳定时加上--partial --progress更友好1.2.2 find精准文件搜索find /var/log -name *.log -mtime 30 -size 10M -exec ls -lh {} \; # 找30天前10M的日志 find . -type f -perm 0777 -print # 找权限777的文件 find /home -user bob -o -user alice # 找属于bob或alice的文件性能优化先限制搜索范围再细化条件-maxdepth控制递归深度xargs比-exec处理大量文件时更高效1.2.3 grep文本搜索神器基础搜索grep -r error /var/log/ # 递归搜索 grep -i warning system.log # 忽略大小写高级技巧grep -A3 -B2 panic kernel.log # 显示匹配前后3行 grep -v DEBUG app.log | grep -E ERROR|WARN # 排除DEBUG后找ERROR或WARN zgrep 404 access.log.*.gz # 直接搜索压缩文件1.2.4 lsof文件句柄分析lsof -i :80 # 查看80端口占用 lsof -u apache # 查看apache用户打开的文件 lsof /var/log/nginx/ # 查看谁在使用nginx日志目录 lsof D /tmp # 监控/tmp目录所有操作典型场景Too many open files错误时用lsof -p PID查泄漏磁盘空间未释放时找被删除但仍被进程占用的文件网络连接异常时验证端口实际监听情况1.3 系统监控三件套1.3.1 top/htop实时进程监控top基础top -c -u mysql # 显示完整命令只监控mysql用户htop增强htop -d 10 # 10秒刷新间隔 htop -s PERCENT_CPU # 按CPU%排序交互命令M按内存排序P按CPU排序F4进程过滤Space标记进程1.3.2 df/du磁盘空间分析df -hT # 人性化显示文件系统类型 df -i / # 查看inode使用情况 du -sh * | sort -hr | head -10 # 找出目录下前10大文件特殊场景df显示100%但du发现空间足够可能是文件被删除但进程仍持有inode耗尽会导致无法创建新文件即使空间足够1.3.3 iostatIO性能监控iostat -dx 1 # 每秒显示详细设备指标 iostat -c -m # CPU和内存统计(MB显示)关键指标%util设备利用率70%可能成瓶颈awaitIO平均等待时间(ms)svctm设备处理IO的平均时间1.4 权限管理双雄1.4.1 chmod/chown基础权限控制chmod -R 750 /opt/app # 递归设置权限 chown -R app:app /opt/app # 递归修改属主 find /opt -type d -exec chmod 755 {} \; # 只修改目录权限权限数字含义4(r) 2(w) 1(x)第一位setuid/setgid/sticky后三位分别属主/组/其他1.4.2 setfacl高级权限控制setfacl -Rm u:user1:rwX,d:u:user1:rwX /shared # 现有新文件权限 setfacl -x u:user1 /shared # 移除指定用户ACL getfacl /shared # 查看ACL规则典型场景协作目录需要精细化权限控制既要保留传统权限又要特殊例外Web服务器需要访问特定用户文件1.5 网络配置双星1.5.1 ip现代网络配置ip addr show # 显示所有接口 ip route add 192.168.1.0/24 via 10.0.0.1 # 添加路由 ip neigh show # 显示ARP缓存对比传统ifconfig功能更强大统一显示更多底层信息新系统推荐使用1.5.2 firewall-cmd防火墙管理firewall-cmd --permanent --add-port8080/tcp # 永久开放端口 firewall-cmd --reload # 重载配置 firewall-cmd --list-all # 查看所有规则复杂场景firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.1.0/24 service namehttp accept2. 实战问题排查流程2.1 网络连接问题四步法本地连通性ping -c4 8.8.8.8DNS解析dig short example.com nslookup example.com端口可达telnet example.com 80 nc -zv example.com 443路由追踪mtr --report example.com2.2 磁盘空间异常排查快速定位大文件du -ahx / | sort -rh | head -20查找被删除但仍占用的文件lsof L1 # 查找链接数为0的文件特殊文件系统检查df -i # inode耗尽 df -hT # 挂载点异常2.3 性能瓶颈分析CPU瓶颈top -H -p $(pgrep nginx) # 查看线程级CPU使用 perf top # 内核级性能分析内存瓶颈free -h vmstat 1IO瓶颈iotop -o # 显示实际IO进程 dstat -cdngy 1 # 综合资源监控3. 高效工作技巧3.1 命令组合实例日志分析三连grep ERROR app.log | awk {print $4} | sort | uniq -c | sort -nr | head安全扫描组合find / -type f -perm -4000 -exec ls -ld {} \; # 找SUID文件网络统计ss -ant | awk {print $1} | sort | uniq -c # 统计各状态连接数3.2 终端复用技巧tmux基础tmux new -s work # 新建会话 tmux attach -t work # 恢复会话分屏操作Ctrlb % # 垂直分屏 Ctrlb # 水平分屏 Ctrlb 方向键 # 切换窗格3.3 历史命令优化提升历史记录export HISTSIZE10000 export HISTTIMEFORMAT%F %T # 添加时间戳 export HISTIGNOREls:ps:history # 忽略简单命令快速调用!$ # 上条命令最后一个参数 !ssh # 执行最近ssh开头的命令 ^old^new # 替换上条命令中的字符串4. 进阶工具推荐4.1 网络高级工具tcpdump抓包tcpdump -i eth0 -nn port 80 -w capture.pcaphttpry分析HTTP流量httpry -i eth0 port 80 | grep POST /login4.2 系统深度监控nmon综合监控nmon -f -s 30 -c 120 # 每30秒采样共120次glances全能监控glances --disable-plugin docker,ports -t 54.3 日志管理方案journalctl查询系统日志journalctl -u nginx --since 1 hour ago -flogrotate配置示例/var/log/nginx/*.log { daily missingok rotate 30 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate /bin/kill -USR1 $(cat /run/nginx.pid 2/dev/null) 2/dev/null || true endscript }掌握这些命令和技巧后Linux系统管理和故障排查效率将大幅提升。建议在日常工作中不断实践形成自己的命令手册。遇到新问题时先思考可以用哪些命令组合解决逐步培养命令行思维。