logo

Linux命令大全:运维老鸟总结的20个救命技巧

Linux作为服务器领域的“事实标准”,其命令行工具链是每一位运维工程师的必备武器。面对突发故障、性能瓶颈或安全风险时,熟练运用特定命令能迅速定位问题并化解危机。本文精选了20个实战价值极高的Linux命令,涵盖系统监控、故障排查、数据操作等核心场景,助你在关键时刻力挽狂澜。
一、系统监控与诊断
top + h组合
作用:实时显示进程资源占用(CPU/内存),按内存使用率排序。
进阶用法:top -o %MEM 直接按内存降序排列,快速锁定内存泄漏进程。
场景:服务器卡顿、OOM Killer频繁触发时,优先用此命令揪出“罪魁祸首”。
df -h
作用:以人类可读格式(GB/MB)显示磁盘分区使用率。
扩展:df -i 查看索引节点(inode)剩余量,避免因创建过多小文件导致“无空间可写”。
警示:若/var分区达100%,可能导致日志滚动失败,需立即清理或扩容。
free -m
作用:以MB为单位显示物理内存、交换区(Swap)及缓冲区使用情况。
关键点:关注buff/cache列——Linux会主动缓存常用数据,若该值异常高且伴随应用卡顿,可能是缓存未释放导致的假死。
dmesg | tail -n 50
作用:查看内核环形缓冲区的最新日志,捕捉硬件错误(如硬盘SMART警告)。
案例:若出现ataX: hard resetting link,表明磁盘控制器已断开连接,需检查数据线或更换背板。
二、文件操作与文本处理
grep -rni "关键词" /路径
作用:递归搜索指定目录下含“关键词”的文件,忽略大小写(-i),并显示行号(-n)。
技巧:结合| wc -l统计匹配次数,快速评估问题范围。
示例:grep -rni "error" /var/log/ 批量检索日志中的异常记录。
sed 's/旧字符串/新字符串/g' 文件名
作用:全局替换文件中的内容(g表示全局,否则仅替换每行首次匹配)。
小心:执行前建议先用grep确认匹配项,避免误改配置。
替代方案:复杂替换可用awk或Python脚本实现。
find /path -name "*.log" -mtime +7 -exec rm {} \;
作用:删除指定目录下修改时间超过7天的日志文件。
优化:将-exec改为-delete可跳过询问步骤,提升效率。
风险提示:务必先测试find条件,防止误删重要文件。
tar -zxvf file.tar.gz -C /目标目录
作用:解压压缩包到指定目录(-C参数),避免文件散落当前目录。
对比:unzip命令同理,但需注意中文文件名乱码问题,可添加LANG=C环境变量解决。
三、进程管理与调试
ps aux | grep [p]rocess_name
作用:查看特定进程的详细信息(用户、PID、启动时间等)。
细节:方括号[]可避免grep自身被匹配,提高准确性。
延伸:pgrep -fl process_name 可直接过滤出完整命令行。
kill -9 PID
作用:强制终止顽固进程(慎用!)。
前置步骤:优先尝试kill -TERM PID发送终止信号,允许进程优雅退出。
极端情况:若进程已僵尸化(Zombie),需其父进程结束后才会消失。
netstat -tulnp | grep :端口号
作用:查看指定端口的监听状态及关联进程PID。
组合技:lsof -i :端口号 可进一步查看进程打开的文件描述符。
典型应用:排查端口被占用导致的服务启动失败。
四、网络与安全
ping -c 4 IP地址
作用:发送4个ICMP包测试网络连通性,返回时间和丢包率。
深化:traceroute IP地址 追踪路由路径,定位网络延迟节点。
注意:部分云服务商默认禁ping,需改用telnet 端口号测试TCP连通性。
ifconfig vs ip addr show
区别:ifconfig逐渐被淘汰,推荐使用ip命令族。
常用子命令:ip a 查看所有接口IP,ip r 查看路由表。
永久生效:修改配置文件后需重启网络服务(systemctl restart network)。
ss -tulnp
作用:替代netstat,更清晰地显示TCP/UDP监听端口及进程信息。
优势:支持更多过滤选项,如ss -s查看汇总统计,ss state established仅显示已建立连接。
ufw status numbered
作用:查看防火墙规则列表及编号,便于精确删除某条规则。
操作:ufw delete N(N为规则编号),比传统iptables更易用。
适用场景:临时开放端口后忘记关闭,导致安全隐患。
五、权限与日志
sudo su -
作用:切换至root用户并加载其环境变量,避免普通用户权限不足。
替代方案:sudo -i 效果相同,但更简洁。
原则:最小权限原则,非必要时避免长期使用root。
journalctl -u service_name --since "1 hour ago"
作用:查看指定服务的最近一小时日志(Systemd日志系统)。
高级用法:journalctl -p err 仅显示错误级别日志,journalctl -b 查看本次启动后的日志。
优势:自动整合多源日志,告别分散的/var/log/*文件。
chmod 755 文件名
作用:设置文件权限为所有者可读写执行,组和其他用户可读执行。
数字含义:rwx对应4/2/1,7=4+2+1,5=4+0+1。
谨慎操作:修改/etc/下配置文件权限可能导致服务启动失败。
六、其他实用技巧
screen + Ctrl+A D
作用:创建后台会话,按Ctrl+A D脱离,重新登录后screen -r恢复。
价值:远程SSH断开时,后台任务仍可继续运行。
进阶:tmux功能类似,但支持分屏和会话共享。
history | grep "命令"
作用:从历史命令中搜索包含关键词的操作记录。
技巧:!n(n为历史命令编号)可快速重复执行上次命令。
安全建议:定期清理敏感命令历史(history -c)。
结语
上述命令只是Linux浩瀚生态中的冰山一角,真正的高手懂得根据场景灵活组合命令。建议将这些命令整理成速查表,并在测试环境中反复练习。
记住:没有最好的命令,只有最适合的命令。下次遇到棘手问题时,不妨先深呼吸,敲入几条命令试试看!
评论
用户头像