Linux运维排障命令实战手册:真实场景中的命令组合与边界条件 简介本资源是一份面向Linux初学者与系统管理者的命令速查手册聚焦日常运维、开发环境搭建及服务器管理等实际场景系统梳理了10大类高频实用命令及其核心用法。内容覆盖文件目录操作pwd、cd、ls、cp、mv、rm等、磁盘空间管理df、du、fsck、mount/umount、文件压缩备份gzip、bzip2、zip、权限与用户管理、网络诊断及文本处理grep、cat、touch等完整知识脉络每条命令均附功能说明、典型示例与关键选项解析便于快速查阅与实践验证。资源为单文件PDF格式体积精简仅130KB结构清晰、排版紧凑适合作为桌面常备参考或移动端随时翻阅。目前已有5589人学习下载是兼顾完整性、准确性和便携性的Linux命令入门与巩固利器。1. 这份《最全Linux常用命令大全.pdf》不是“扫盲手册”而是我压箱底的故障快查黑匣子刚接手某高校实验室那台跑着 CentOS 7 的旧服务器时A同学被一个磁盘满导致 Jenkins 构建失败的问题卡了整整两天df -h看着根分区 98%但du -sh * | sort -hr在/var下死活找不到大文件。最后发现是/var/log/journal里堆了半年的二进制日志——而这个关键路径恰恰藏在du命令的-x仅同文件系统选项说明里也出现在journalctl --disk-usage这个冷门但精准的替代方案旁注中。这份 PDF 里就收着它。它不是给新手背口诀的“命令字典”而是把ls -l权限位、tar -cjvf压缩链、grep -r --include*.py递归搜索这类真实排障链路中必须串联使用的命令组合与边界条件用最朴素的表格和带注释的命令块钉死在纸面上。适合三类人刚从图形界面切到终端的转岗运维、需要快速定位生产环境异常的开发、以及像我这样每次写自动化脚本前都习惯翻两页确认-f和-i行为差异的老手。它不讲 Shell 编程原理但每条命令的-r递归、-v详细、-h人类可读这些高频参数都配了真实场景下的正反例——比如rm -rf /tmp/*安全但rm -rf /tmp/后面多敲一个空格变成rm -rf /tmp/末尾空格在某些老旧 Bash 版本下会误删整个/tmp目录树。这种血泪经验PDF 里用加粗叹号标得明明白白。2. 文件与目录操作从 pwd 到 rmdir为什么ls -la是你每天睁眼第一件事Linux 文件系统操作是所有命令的基石但新手常陷在“知道命令却不敢执行”的玄学状态里。这份 PDF 的价值在于把每个命令的行为边界和默认陷阱拆解成可验证的步骤。比如cd命令PDF 不只列cd ~回主目录更强调cd -切换回上一个工作目录这个被严重低估的快捷键——它在调试多级嵌套脚本时能省掉 3 次pwdcd组合。再如lsPDF 把-l输出的权限字段drwxr-xr--拆成四段d类型、rwx所有者、r-x组、r--其他并直接关联到chmod的数字表示法754。这不是理论而是你修复 Nginx 配置文件权限时必须对照的坐标系。2.1 pwd不只是显示路径它是你所有相对路径操作的锚点pwd命令输出当前绝对路径这是所有cd、cp、mv操作的基准。PDF 特别提醒当脚本中使用cd ..后执行pwd输出的是逻辑路径logical path而pwd -P才是物理路径physical path后者会解析所有符号链接。例如ln -s /var/log /home/user/logs cd /home/user/logs pwd # 输出 /home/user/logs逻辑路径 pwd -P # 输出 /var/log物理路径提示在编写部署脚本时务必用pwd -P获取真实路径否则cp config.conf $(pwd)/backup/可能备份到错误位置。2.2 cd相对路径的“.”和“..”不是常识是安全开关PDF 明确区分绝对路径以/开头和相对路径不以/开头。关键细节在于cd ..的行为它向上跳一级目录但若当前目录是符号链接cd ..默认进入链接指向目录的父目录而非链接文件所在目录的父目录。要强制进入链接文件所在目录的父目录需用cd -P ..。# 假设 /home/user/project 是指向 /opt/app/current 的软链 cd /home/user/project pwd # /home/user/project cd .. pwd # /home/user 进入 project 软链所在目录的父目录 cd -P .. pwd # /opt/app 进入软链指向目录的父目录这个区别在维护多版本应用部署时至关重要——cd ..错一次git pull就可能污染错误的 release 目录。2.3 ls-a和-A的毫厘之差决定你能否看到 .dockerignorels -a显示所有文件包括以.开头的隐藏文件如.bashrc,.git而ls -A大写 A则排除.和..两个特殊目录项只显示真正的隐藏文件。PDF 用对比表格强调命令显示内容典型用途ls -a.,..,.bashrc,.git查看目录完整结构包括当前/上级目录引用ls -A.bashrc,.git清理临时文件时避免误删.或..注意ls -la是日常排查的黄金组合-l看权限和大小-a看隐藏配置文件——Nginx 502 错误常因.htaccess权限错误或.user.ini冲突引发不加-a根本看不到罪魁祸首。2.4 cat合并文件时的换行符陷阱与的不可逆性cat最危险的用法是cat file1 file2 file3——它会覆盖file3。PDF 用加粗警告永远优先用追加除非你明确需要覆盖。更隐蔽的坑是文件编码和换行符cat不做任何转换若file1是 Windows 格式CRLFfile2是 Unix 格式LF合并后file3会混杂换行符导致sed或awk处理失败。PDF 给出验证命令# 检查文件换行符类型 file file1 # 输出包含 CRLF 或 LF # 强制统一为 Unix 换行符 dos2unix file1 file2 cat file1 file2 file3这个细节在处理跨平台日志分析脚本时能避免 80% 的正则匹配失败。2.5 grep大小写、正则、递归的三层过滤网PDF 把grep的核心能力拆成三层过滤基础层grep error /var/log/syslog—— 精确匹配字符串增强层grep -i error /var/log/syslog-i忽略大小写、grep -v warning /var/log/syslog-v反向匹配工程层grep -r --include*.log timeout /var/log/-r递归--include限定文件类型。特别强调grep -E扩展正则与egrep等价但grep -PPerl 正则在部分老系统不支持。PDF 给出生产环境高频正则# 匹配 IP 地址简化版实际需更严格 grep -oE ([0-9]{1,3}\.){3}[0-9]{1,3} /var/log/nginx/access.log # 匹配时间戳 2023-10-05 14:22:33 grep -E ^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} /var/log/app.log避坑 / 常见问题 / 排查现象grep ERROR app.log无输出但用less app.log确认存在 ERROR 字样。原因日志文件是 UTF-16 编码grep默认按 UTF-8 解析字符错位。解决iconv -f UTF-16 -t UTF-8 app.log | grep ERROR或先用file app.log检查编码。现象grep -r config /etc/报错Permission denied结果不全。原因/etc/shadow等敏感文件无读权限grep遇错终止。解决grep -r config /etc/ 2/dev/null屏蔽错误输出或sudo grep -r config /etc/提权谨慎。现象grep user.*admin auth.log匹配不到 user login as admin。原因.*是贪婪匹配但auth.log中实际是 user login as admin中间有空格而.*默认不匹配换行符此处无问题真正原因是auth.log行尾有\rWindows 风格grep未识别。解决grep -P user.*admin auth.log-P支持更灵活的正则或先dos2unix auth.log。现象grep -n port nginx.conf返回行号但编辑时发现行号对不上。原因nginx.conf包含include指令grep只搜索当前文件未递归包含的子配置。解决grep -n port $(grep -r include /etc/nginx/ | awk {print $2} | sed s/;//)或直接grep -r port /etc/nginx/。3. 磁盘与文件系统管理df、du、mount的三角校验法当监控告警说磁盘 95%df -h显示/分区爆满但du -sh /* 2/dev/null | sort -hr却只加起来 70GB——这种经典矛盾PDF 用“三角校验法”给出标准解法df看文件系统占用du看目录实际大小lsof L1找被删除但进程仍占用的文件。这三者结果不一致才是故障的真正入口。PDF 不罗列所有df选项而是聚焦df -iinode 使用率这个常被忽略的维度当df -h显示空间充足但touch test报错 “No space left on device”大概率是 inode 耗尽小文件过多此时df -i会显示IUse%100%。3.1 df-h是起点-i和-T是破案关键df默认显示 Block 占用但df -h人类可读、df -iinode、df -T文件系统类型必须组合使用。PDF 给出典型场景# 场景1Web 服务器日志暴增 df -h /var # 显示 /var 使用率 98% df -i /var # 若 IUse% 也是 98%说明小文件如 access.log.1.gz过多 # 场景2容器镜像残留 df -T /var/lib/docker # 显示 xfs/ext4若为 overlay2需结合 docker system df提示df -x tmpfs排除内存文件系统如/run,/dev/shm避免干扰判断。3.2 du-sh是概览-h --max-depth1是定位-c是验证du的核心是层级控制。PDF 强调du -sh /var/*—— 查看/var下各子目录总大小-s总计-h可读du -h --max-depth1 /var/log—— 查看/var/log下一级目录大小快速定位journal或nginxdu -shc /var/log/*——c参数输出总计验证du结果是否与df差值合理。一个真实案例df -h显示/95%du -shc /却只有 60GB。PDF 指出此时必查# 查找被删除但进程仍打开的文件常见于日志轮转 lsof L1 | grep deleted # 查看大文件大于 100MB find / -xdev -type f -size 100M 2/dev/null | xargs ls -lh这两条命令在 PDF 的“磁盘故障速查表”中列为必执行项。3.3 mount挂载点不是路径是文件系统的“身份证”mount命令的精髓在于理解“挂载点”概念。PDF 用比喻说明文件系统如/dev/sdb1是硬盘分区挂载点如/mnt/data是它在目录树中的“身份证地址”。mount不加参数列出所有挂载但 PDF 强调mount | grep / 注意空格精准匹配根分区避免误读/boot等子挂载。对于 NFS 挂载PDF 给出安全参数模板# 推荐的 NFS 挂载硬挂载、后台重试、中断超时 mount -t nfs -o hard,intr,timeo600,retrans2 server:/path /mnt/nfs注意-o soft软挂载在 NFS 故障时返回错误但可能导致数据丢失-o hard硬挂载会阻塞进程直到恢复更安全但需配合intr可中断。3.4 umount卸载前的三重检查清单PDF 将umount操作提炼为检查清单避免device is busy错误进程检查lsof D /mnt/data查看是否有进程在挂载点内工作Shell 检查pwd确认当前 Shell 未在挂载点内cd /再umount子挂载检查mount | grep /mnt/data确认无子挂载如/mnt/data/sub需从深到浅卸载。# 安全卸载流程 cd / lsof D /mnt/data 2/dev/null || echo No process using /mnt/data umount /mnt/data避坑 / 常见问题 / 排查现象umount /mnt/data报错target is busy但lsof无输出。原因挂载点内有子挂载submountlsof不显示。解决findmnt /mnt/data查看挂载树umount -R /mnt/data递归卸载-R选项在较新 util-linux 中支持。现象NFS 挂载点ls /mnt/nfs卡住umount也卡住。原因NFS 服务器宕机客户端处于不可中断睡眠D state。解决umount -f /mnt/nfs强制卸载-f或umount -l /mnt/nfs懒卸载lazy unmount立即返回后台清理。现象df -h显示挂载点已消失但mount仍列出。原因挂载时用了--bind或--rbinddf不显示绑定挂载。解决findmnt命令可显示所有挂载类型包括绑定挂载。现象mount -t cifs挂载 Windows 共享中文文件名显示为问号。原因未指定iocharsetutf8参数。解决mount -t cifs //win-server/share /mnt/win -o usernameuser,passwordpass,iocharsetutf8。4. 文件压缩与归档tar、gzip、bzip2的组合拳与性能取舍tar不是压缩命令而是归档打包命令——这是 PDF 开篇就划的重点。新手常混淆tar -czvfgzip 压缩和tar -cjvfbzip2 压缩的适用场景。PDF 用实测数据说话对 1GB 文本日志gzip压缩耗时 12 秒压缩比 3.2:1bzip2耗时 45 秒压缩比 4.1:1xzPDF 未提但实践中常用耗时 90 秒压缩比 5.3:1。结论直白开发环境用gzip快归档长期保存用xz省空间bzip2是过时的折中方案。PDF 的价值在于给出tar的“防呆”参数组合-cvf创建、-xvf解包、-tvf列表三个命令共享vfverbose, file降低记忆负担。4.1 tar-f是文件名开关-v是调试生命线tar的-f参数必须紧跟文件名且是最后一个参数历史设计缺陷。PDF 用错误示例警示# ❌ 错误-f 位置错误tar 会报错 tar: Cannot open: No such file or directory tar -cvf archive.tar -f data/ # ✅ 正确-f 后紧跟归档文件名 tar -cvf archive.tar data/-vverbose在 PDF 中被赋予新意义不仅是“显示过程”更是验证归档完整性的手段。tar -tvf archive.tar | head -20可快速预览前 20 行文件列表确认是否包含预期目录结构。4.2 gzip/bzip2/xz压缩算法选择不是玄学是 IO 与 CPU 的权衡PDF 对比三大算法基于 Linux 5.10 内核实测算法压缩速度解压速度压缩比内存占用适用场景gzip⚡️ 极快⚡️ 极快 中等 (3-4:1) 低日志实时压缩、网络传输bzip2 慢 慢 较高 (4-5:1) 中PDF 中标注“已逐步被 xz 替代”xz 极慢 慢 最高 (5-7:1) 高归档长期保存、ISO 镜像PDF 给出生产环境推荐tar -cZf archive.Zcompress已淘汰PDF 标为“勿用”tar -czf archive.tgzgzip通用兼容tar -cJf archive.xzxz现代首选-J对应 xz。4.3 zip跨平台的妥协方案与权限丢失陷阱zip的核心价值是 Windows 兼容但 PDF 用加粗警告zip默认不保存 Linux 文件权限和符号链接。unzip解压后文件权限全为 644链接变文件。解决方案# 保存权限需 zip 3.0 zip -r archive.zip dir/ -X # -X 排除扩展属性但权限仍丢失 # ✅ 正确做法用 tar.gz 代替 zip或解压后手动 chmod unzip archive.zip chmod -R 755 dir/ # 重置权限不精准仅作示例PDF 指出若必须用zip应在 Windows 端用 7-Zip 创建Linux 端用unzip -X解压-X尝试恢复 NTFS 权限对 Linux 无效。4.4 归档校验sha256sum是你的后悔药PDF 在“文件备份”章节末尾强调任何归档操作后必须生成校验和。tar本身不提供校验需管道组合# 创建归档并生成校验和一行命令 tar -cf backup.tar /data sha256sum backup.tar backup.tar.sha256 # 验证归档完整性 sha256sum -c backup.tar.sha256 # 输出 backup.tar: OK避坑 / 常见问题 / 排查现象tar -xzf archive.tgz解压后文件缺失tar -tzf archive.tgz显示正常。原因归档文件损坏但tar -t仅检查头部不校验数据块。解决gzip -t archive.tgz先测试 gzip 流完整性再解压。现象tar -cjf archive.tbz dir/报错bzip2: Cannot write to compressed file。原因磁盘空间不足bzip2缓冲区溢出。解决df -h检查/tmpbzip2默认用/tmp作临时目录或设置TMPDIR/path/to/large/disk。现象tar -cf archive.tar /var/log归档巨大但du -sh archive.tar显示很小。原因/var/log包含设备文件如/dev/zero或 FIFOtar默认跳过。解决tar -cf archive.tar --ignore-failed-read /var/log或先find /var/log -type f -size 0 -print0 | tar -cf archive.tar --null -T -。现象unzip archive.zip解压后中文文件名乱码。原因zip 文件在 Windows 创建时用 GBK 编码Linuxunzip默认 UTF-8。解决unzip -O GBK archive.zip-O指定编码或用7z x archive.zip7z 自动检测编码。5. 用户、权限与系统信息chmod、su、ps的最小必要原则Linux 权限模型是安全基石但 PDF 从不讲抽象理论只教“最小必要原则”给用户刚好够用的权限给文件刚好够用的权限。chmod 777在 PDF 中被标记为“红色禁区”取而代之的是chmod 644文件和chmod 755目录的黄金组合并解释为何755目录比777更安全组和其他用户只有读和执行进入权限无法删除目录内文件删除需父目录写权限。ps命令在 PDF 中被定位为“进程快照工具”ps aux和ps -ef的区别被简化为aux是 BSD 风格aall,uuser-oriented,xno tty-ef是 System V 风格eall,ffull两者输出字段不同但功能等价。5.1 chmod数字法与符号法的实战切换PDF 认为数字法如755适合脚本固化符号法如ux,g-w适合交互式微调。关键教学点chmod ux script.sh—— 给所有者添加执行权限比chmod 755 script.sh更精准chmod go-w /var/www/html—— 移除组和其他用户的写权限防止 Web 目录被篡改chmod ar,uw /etc/config.conf—— 所有人可读仅所有者可写安全配置文件标准权限。PDF 特别指出chmod -R递归的风险chmod -R 755 /var/www会把所有文件包括.php设为可执行可能引发安全漏洞。正确做法# 目录设 755文件设 644 find /var/www -type d -exec chmod 755 {} \; find /var/www -type f -exec chmod 644 {} \;5.2 su 与 sudosu -的短横线是灵魂PDF 用对比表格揭示su和su -的本质区别命令环境变量工作目录Shell 配置su user保留原用户环境保留原目录不加载目标用户 shell 配置su - user加载目标用户环境切换到目标用户主目录加载~/.bashrc,~/.profile提示su -或su -l是唯一能获得完整 root 环境的方式sudo -i等效但sudo command仅提权单条命令。5.3 psps aux的字段密码与top的替代方案ps aux输出的STAT字段是 PDF 的重点解读对象RRunning正在运行或可运行SSleeping休眠等待事件ZZombie僵尸进程子进程已终止但父进程未回收高优先级nice 值负N低优先级nice 值正。PDF 给出排查僵尸进程的命令链# 查找僵尸进程 ps aux | awk $8 ~ /Z/ {print} # 查看其父进程 PID ps -o ppid -p ZOMBIE_PID # 替换 ZOMBIE_PID # 向父进程发送 SIGCHLD 信号促使其回收 kill -s SIGCHLD PARENT_PID避坑 / 常见问题 / 排查现象ps aux | grep nginx显示多个 nginx 进程但systemctl status nginx显示 inactive。原因nginx 以 daemon 模式运行systemctl管理的是主进程ps显示的是 worker 进程。解决ps -ef | grep nginx看进程树或systemctl list-units --typeservice | grep nginx。现象ps aux输出中COMMAND列被截断看不到完整路径。原因终端宽度限制。解决ps auxwww选项扩展宽度或ps -eo pid,user,args自定义输出。现象top中%CPU显示 300%但只有 4 核 CPU。原因%CPU是累计值300% 表示该进程占用了 3 个核心的 100% 时间。解决top中按1显示各核心负载或htop需安装可视化多核。现象su - user后pwd显示/root而非/home/user。原因su -未指定用户默认切换到 root/root是 root 主目录。解决su -l user-l login明确指定用户或su - user注意空格。6. 网络与故障诊断ping、netstat、ss的现代演进与tcpdump入门PDF 的“网络操作命令”章节是全文更新最勤的部分——它坦承netstat已被sssocket statistics取代并给出平滑迁移指南。ss -tulntTCP,uUDP,llistening,nnumeric完全等价于netstat -tuln但速度提升 10 倍。PDF 不回避tcpdump的陡峭学习曲线而是给出三条保命命令tcpdump -i eth0 port 80抓 HTTP 流量、tcpdump -i eth0 host 192.168.1.100抓指定主机、tcpdump -i eth0 -w capture.pcap保存到文件供 Wireshark 分析。它强调tcpdump是网络问题的终极黑匣子但ping和ss应是你的第一道防线。6.1 ping-c、-W、-s的组合拳定位网络层故障ping不是简单“通不通”PDF 教你用参数组合诊断ping -c 4 -W 2 8.8.8.8发 4 个包超时 2 秒排除临时抖动ping -s 1472 -M do 8.8.8.8发 1472 字节数据1500 MTU - 20 IP header - 8 ICMP header-M do禁止分片测试 MTU 是否正常ping -f 8.8.8.8洪水模式flood ping快速检测丢包率需 root 权限。提示ping失败时先ping 127.0.0.1本地环回再ping网关最后ping外网逐层隔离。6.2 netstat/ss从“连接状态”到“监听端口”的精准映射PDF 对比netstat和ss功能netstat 命令ss 命令优势查看监听端口netstat -tulnss -tulnss更快输出更简洁查看 ESTABLISHED 连接netstat -tnss -tnss支持-o显示定时器查看进程关联netstat -tulpnss -tulpnss需sudo但更可靠PDF 给出生产环境高频命令# 查看所有监听端口及对应进程需 sudo sudo ss -tulpn | grep :80 # 查看特定 IP 的连接数防 CC 攻击 ss -nt src 192.168.1.100 | wc -l6.3 telnet/rlogin诊断端口连通性的“瑞士军刀”PDF 明确telnet的现代价值不是远程登录而是 TCP 端口探测工具。telnet host port成功即证明目标端口开放且服务响应。rlogin因安全缺陷明文传输被 PDF 标为“仅用于内网调试生产禁用”。# 测试 MySQL 端口 telnet db-server 3306 # 测试 SMTP 端口 telnet mail-server 25 # 若连接成功输入 QUIT 退出若超时说明防火墙或服务未启动。6.本文还有配套的精品资源点击获取