当前位置:首页>Linux>别再用top和ps了,这几个Linux命令让你运维效率翻三倍 | Linux运维的隐藏技能:会用这些命令的才是真大佬

别再用top和ps了,这几个Linux命令让你运维效率翻三倍 | Linux运维的隐藏技能:会用这些命令的才是真大佬

  • 2026-08-22 14:12:28
别再用top和ps了,这几个Linux命令让你运维效率翻三倍 | Linux运维的隐藏技能:会用这些命令的才是真大佬
点击上方👆浪哥科技👇
+关注★星标★

别再用top和ps了,这几个Linux命令让你运维效率翻三倍

服务器卡成PPT的时候,别再只会重启大法了,这几个命令能让你30秒内锁定元凶。

前几天线上服务器突然抽风,CPU飙到95%,磁盘IO wait高得离谱,整个服务响应慢得像蜗牛。隔壁组的小王急得团团转,差点就要祭出万能重启大法。

我过去敲了几个命令,30秒就定位到是一个跑偏的日志收集进程在疯狂写盘。运维的差距就在这儿——基础命令人人会用,但高级命令能在关键时刻救你于水火。


01 性能排查,别只会top了

性能问题永远是运维的头号公敌。服务器一卡,业务方电话就打爆了。但很多人排查性能问题,翻来覆去就是top、free、iostat老三样。

说实话,这就像用瑞士军刀修车——能用,但效率真不行。

pidstat 这个命令比top精准得多。top给你的是瞬间快照,pidstat能给你连续监控。想知道哪个进程在偷偷吃IO?

pidstat -d 1 10

每秒采样一次,连续10次,哪个进程读写最猛一目了然。-d参数显示磁盘IO,-r显示内存,-u显示CPU。

安装也很简单,CentOS用yum install sysstat,Ubuntu用apt-get install sysstat。

上次我用这个抓到一个疯狂写日志的后台进程,它每秒写入300MB数据,直接把磁盘IO打满。如果没有pidstat,我可能还在怀疑是数据库问题。

iotop 是另一个神器,专治各种磁盘IO疑难杂症。

iotop -o -P -b -d 2 -n 5

-o只显示有IO活动的进程,-P不显示线程只显示进程,-b批量模式适合写脚本。这个命令让我发现了一个配置错误的数据库备份任务,它在业务高峰时段全表扫描,把生产库的IO拖垮了。

02 网络问题,ss比netstat快10倍

高并发场景下,netstat查几千个连接能卡到你怀疑人生。ss命令基于内核哈希表,查询速度完全不在一个量级。

ss -ltnp | grep :8080

一秒内告诉你8080端口被谁占着。-s参数统计各状态连接数,排查连接泄漏时特别有用。

我见过最离谱的案例是一个微服务忘了关连接池,24小时积累了8万个TIME_WAIT连接。用ss -s一眼就能看出异常,用netstat查的话,估计得等个好几分钟。

03 日志分析,别再cat+grep了

面对几个G的Nginx日志,用cat+grep就像用勺子舀大海。awk才是日志分析的正解。

统计每个IP的访问次数?一行命令搞定:

awk ‘{print $1}’ access.log | sort | uniq -c | sort -nr | head -10

提取状态码为404的请求?同样简单:

awk ‘$9==“404” {print $1, $4, $7}’ access.log

最近很多应用都输出JSON日志,这时候jq就是神器了。以前看Docker或K8s日志,满屏的JSON结构看得眼花。

kubectl logs pod-name | jq ‘.message’

一行命令提取出核心信息,过滤ERROR级别日志也轻而易举。

04 文件处理,xargs和find组合拳

清理7天前的日志文件,很多人会写脚本循环。其实一行命令就行:

find /var/log/nginx -name “*.log” -mtime +7 | xargs rm -rf

但这里有个大坑:如果文件名有空格,这条命令会炸。正确做法是:

find /var/log/nginx -name “*.log” -mtime +7 -print0 | xargs -0 rm -rf

-print0和-0组合能正确处理各种奇怪的文件名。

find命令的-exec参数也很强大,但语法有点反人类:

find /etc -name “*.conf” -mtime 0 -exec cp {} /backup/ \;

那个{}和\;真是Linux设计者的恶趣味。不过用熟了确实能省不少事,比如批量修改权限:

find /var -type f -perm 777 -exec chmod 755 {} \;

05 系统管理,别只会start和stop了

systemctl 现在几乎是标配了,但很多人只知道start、stop、restart。其实它有很多隐藏功能。

比如查看服务依赖关系:

systemctl list-dependencies nginx

排查服务启动失败时特别有用。还有systemctl status -l显示完整日志,不用再去翻journalctl。

最近发现systemctl enable --now这个组合特别实用,一次搞定设置开机启动和立即启动。Oracle的文档里也推荐这么用,确实省事。

权限管理是另一个容易翻车的地方。chmod 777 这种操作我都看麻了,简直是在服务器上开裸奔派对。

正确的权限设置应该是:

chmod u=rwx,g=rx,o= /opt/script.sh

符号表示法比数字更直观,一看就知道每类用户有什么权限。chown -R www:www /var/www/html递归修改目录所有权,Web部署时经常用。

06 安全排查,lastb发现入侵痕迹

lastb 这个命令可能很多人没用过,但它能显示所有失败的登录尝试。服务器被暴力破解时,这是第一道防线。

lastb -n 20

显示最近20次失败登录。如果看到同一个IP尝试不同用户名,基本可以确定是攻击行为。

配合last查看成功登录记录,能全面了解服务器登录情况。这两个命令读取的是/var/log/btmp和/var/log/wtmp文件,如果文件不存在,系统就不记录这些信息。

07 命令组合,发挥最大威力

单个命令再强也有局限,真正的高手都擅长命令组合。

比如找出磁盘使用量最大的10个目录:

du -ah / | sort -rh | head -n 10

实时监控网络连接变化:

watch -n 1 “ss -s | grep -i total”

监控某个进程的CPU和内存使用:

pidstat -p 1234 -u -r 1

这些组合命令我都设成了别名,放在~/.bashrc里。比如alias ngxerr=‘tail -f /var/log/nginx/error.log’,用起来效率翻倍。

不过要注意不同Linux发行版的差异,Ubuntu用apt,CentOS用yum,命令参数有时也不一样。写脚本时一定要考虑兼容性问题。


那天问题解决后,小王跑来问我怎么这么快。我告诉他:top能告诉你服务器发烧了,但高级命令能告诉你发烧是因为感冒还是肺炎。现在他也在自己的服务器上装上了sysstat,开始用pidstat和iotop了。

真正的运维高手,不是记住所有命令,而是知道什么问题该用什么工具。就像老中医,望闻问切后,针到病除。

相关标题

  1. 运维内卷新高度:掌握这7个Linux命令,让你在团队中横着走
  2. 服务器又卡了?别急着重启!这5个命令能帮你30秒内锁定真凶
  3. 从运维小白到大神:我只用了这10个Linux高级命令
  4. Linux命令新玩法:pidstat让你告别top的“片面之词”
  5. 深夜服务器告警不再慌:这些高级命令就是你的“急救包”
  6. 别再浪费生命在繁琐运维上了!这些命令组合让你效率提升300%
  7. Linux运维的隐藏技能:会用这些命令的才是真大佬

相关标签

主标签:#Linux运维
副标签:#系统性能优化
长尾标签:#Linux高级命令使用技巧

END
推荐
#

推荐文章

点击阅读原文,查看更多

点分享
点收藏
点在看
点点赞

最新文章

随机文章