前面其实写过Linux基础命令,但很多小伙伴反馈太杂、太理论。想记吧,不知道先记哪几个。在生产环境出问题时,大脑一片空白,想查个东西敲不出来,敲出来了又少参数,查不到具体原因,最后锅全自己背了。
那今天就聊一聊生产环境真正高频、能定位问题、还能甩锅留痕的11条命令实战用法。包括每一段字符到底干啥的,以后就不用复制粘贴,脑海里自动就组合好了。
一、find 精准找大文件/异常日志(磁盘爆满核心)
对应现场场景:磁盘100%、日志炸盘、服务写文件失败、找不到垃圾文件。
完整实战命令
# 全盘查找1G以上大文件find / -type f -size +1G -exec ls -lh {} \;
字段拆解:
•/:从根目录开始全盘扫描(范围最大,适合全盘爆盘排查)•-type f:只找「文件」,忽略文件夹、目录,避免干扰•-size +1G:筛选大于1G的文件,精准锁定巨型日志/垃圾文件•-exec ls -lh {} \;:找到文件后,自动展示文件大小、权限、时间,不用二次查询其余高频衍生命令拆解
# 指定日志目录找500M以上文件find /home/logs -type f -size +500M -exec ls -lh {} \;
/home/logs:限定检索目录,不用全盘扫描,排查速度更快
# 查找近3天新增/修改文件find /home/project -mtime -3 -type f
-mtime -3:只看3天内变动的文件,专治「突然爆盘、临时新增垃圾文件」
老唐现场总结:df看磁盘、du看目录、find看文件,磁盘问题三步闭环,所有爆盘问题通杀。
禁忌:find查到的正在写入的日志,千万别直接删,会造成磁盘空间不释放。
二、du -sh * 逐级排查大目录
对应现场场景:磁盘已满,先快速定位是哪个目录占空间,缩小find排查范围。
完整命令
字段拆解:
•-s:汇总统计,不展示子文件详情,界面干净不刷屏•-h:人性化单位展示(G/M/K),不用自己换算字节•-hr:按容量从大到小倒序排列,一眼看到最大目录实战逻辑:先靠这条命令锁定大目录,再cd进去用find找具体文件,排查效率翻倍。
三、tail -f 实时盯日志(排障第一入口)
对应现场场景:复现报错、抓实时异常、接口报错快速定位。
高频命令
字段拆解:
•-n 500:只加载最后500行,避免日志太大直接卡死终端过滤报错升级版拆解
tail -n 500 -f app.log | grep -E "Exception|超时|Duplicate"
现场铁律:所有线上问题,必须先开实时日志再复现,杜绝盲猜、盲重启。
四、grep 检索历史报错(取证复盘必备)
对应现场场景:偶发报错、历史故障、间歇性bug,实时抓不到,检索日志取证。
核心命令
grep -C 20"Duplicate entry" app.log
字段拆解:
•-C 20:核心保命参数!展示报错行+前后20行上下文•"Duplicate entry":要检索的报错关键字(可替换空指针、超时等)实战价值:单独一行报错没说服力,上下文才能看到入参、操作场景,精准甩锅不背锅。
五、ps -ef | grep 核查进程状态
对应现场场景:服务启动没反应、假启动、多进程冲突、服务莫名下线。
命令
字段拆解:
•-f:展示完整格式(PID、父进程、启动命令、用户)•grep java:过滤出Java进程,精准定位项目服务现场判断逻辑:无进程=启动失败;多进程=重复启动;有进程不通=服务卡死。
六、ss / netstat 端口排查(适配所有服务器,含无ss兼容方案)
对应现场场景:连接拒绝、端口不通、服务连不上中间件、端口占用排查,适配新老所有Linux服务器。
重点说明:部分老旧CentOS6、极简装机、精简系统没有自带ss命令,专属兼容方案+安装教程全部配齐,杜绝命令不存在报错。
命令
# 【新服务器首选】ss命令(高效快速)ss -an | grep 8080# 【老旧服务器/无ss必用】netstat兼容替代(100%适配所有系统)netstat -an | grep 8080# 无ss命令一键安装(临时补装,装完直接能用)yum install iproute -y
字段拆解(两条命令通用):
•ss / netstat:Linux两大网络端口查询工具,ss新版更快,netstat全版本兼容•-n:纯数字端口展示,不解析域名主机,查询速度翻倍、不卡顿•grep 8080:精准过滤目标业务端口、中间件端口•ss:比netstat更快的套接字查询命令,生产首选•grep 8080:过滤指定端口,查看是否正常监听实战结论(通用所有服务器):无端口监听=服务未启动/启动报错;有端口监听=网络、防火墙、配置问题。
现场避坑:遇到ss: 未找到命令,直接放弃ss,用netstat替代,不用折腾安装,现场排查优先保证能用。
七、kill -15 / kill -9 进程终止命令
对应现场场景:进程卡死、端口占用、重启失效、假死服务清理。
命令
字段拆解:
•-15:温柔终止(默认),通知程序收尾事务、保存数据、释放端口,生产首选•-9:强制杀死,暴力终止进程,不做任何收尾,仅卡死时使用现场避坑:新人别上来就-9,极易造成数据丢失、文件损坏、事务回滚失败。
八、top 查看服务器负载
对应现场场景:接口卡顿、批量超时、页面加载慢,区分是服务器问题还是代码问题。
命令+拆解
解释:
top是系统动态监控面板,无需复杂参数,直接看三个核心点:
九、dmesg -T 排查进程莫名消失
对应现场场景:服务突然闪退、日志无报错、自动宕机、重启就好。
命令
字段拆解:
•dmesg:查看系统内核日志(业务日志查不到的内核级问题全在这)•grep -i kill:模糊检索内核杀死进程记录,-i忽略大小写实战神逻辑:服务莫名消失90%是OOM内存溢出,系统主动杀进程,业务日志完全不记录,只有这条命令能查到。
十、curl 自测接口划分责任
对应现场场景:前后端扯皮、外网不通、接口报错,快速界定问题边界。
命令
curl http://127.0.0.1:8080/xxx/query
拆解:
•curl:服务器本地发起请求,不依赖浏览器、前端、外网•127.0.0.1:本地回环地址,不走外网、不走防火墙甩锅铁律:
本地通前端不通 → 前端/域名/外网问题;本地不通 → 后端服务/配置问题。
十一、lsof | grep deleted 排查磁盘假满故障(生产隐形坑王)
对应现场场景:df查看磁盘100%爆满,du、find排查无大文件,磁盘空间莫名被占、日志删了空间不释放、服务卡顿卡死。
新人致命误区:磁盘满了删日志,删完发现空间一点没少,越修越崩,最后背锅人为事故。
完整实战命令
# 查询已删除但未释放的僵尸文件(磁盘假满专属排查)lsof | grep deleted
字段拆解:
•lsof:list open files,查询系统所有进程正在占用的文件•grep deleted:精准过滤已被删除、但被进程占用、未释放空间的僵尸文件生产核心原理(必懂)
Linux机制:文件被正在运行的进程占用时,哪怕你用rm删除了文件,磁盘空间不会立刻释放。文件只是消失了入口,进程还在持有文件句柄,导致磁盘假满、无大文件但空间爆满。
这是线上最高频、最隐蔽的磁盘故障,du和find完全查不出来,只能靠lsof排查。
现场落地解决方案
# 方案1:安全清空僵尸日志文件(生产首选,不重启服务)echo "" > 被占用的日志文件名# 方案2:服务维护期,重启对应进程/服务,彻底释放空间kill -15 占用文件的PID
现场避坑铁律
磁盘爆满优先执行:先查deleted僵尸文件,再删日志!禁止直接rm删除正在写入的业务日志、运行日志,90%的磁盘假满事故都是新人乱删文件导致。
一线实施专属:命令+原理极简口诀(建议截图)
•find:目录粗查用du,精准找文件用find,+size筛大文件•du:-sh看汇总,sort排序,快速锁定爆盘目录•tail:-f实时监听,-n限定行数,过滤关键字抓报错•ss/netstat:-an查端口监听,新旧服务器双适配,专治连接拒绝•lsof deleted:专治磁盘假满、删文件不释放空间的隐形故障老唐最后唠叨两句
为什么别人排障快、不背锅?不是运气好,是懂命令原理,不是死记硬背。
只会复制粘贴,换个参数、换个场景就废;弄懂每一段参数的含义,现场不管什么奇葩问题,都能灵活改命令、精准定位。
这11条命令+参数拆解,搭配前面五大生产报错,已经覆盖实施岗99%的线上救火场景。吃透这套,你从“只会重启的新人”直接升级为“三分钟定根因、划责任的老员工”。
干货有用,欢迎点赞、在看、转发,关注老唐,持续解锁实施进阶实战技巧!