ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Linux实战100例:从命令到排错的系统化训练

2026/10/4 23:05:58 拓冰建站 浏览量
Linux实战100例:从命令到排错的系统化训练 简介这是一套面向 Linux 学习者与开发者的实战代码合集精选 100 个经典且最具代表性的代码实例覆盖网络调用命令、Apache 服务器参数配置、Linux 错误代码详解等高频应用场景并针对系统使用过程中常见的诸多错误给出排查思路与解决方法适合需要边敲边学、快速积累排错经验的初中级读者。资源包为 RAR 压缩格式解开后共 204 个文件总大小约 40.19MB。其中 195 个网页格式文档构成主体这些网页将每个示例的代码、注释、运行效果与功能调用过程说明整合在一起在浏览器中打开即可逐条学习无需单独搭建复杂环境另配 PDF、DOC、EXE 等多种电子文档作为参考手册和延伸阅读少量素材以压缩包形式存放。目前已有 2180 人学习下载内容既包含 100 个实战示例又附带 Apache 配置要点、错误代码对照与常见问题排错参考读者可从中获得系统化的功能调用流程说明、参数设置细则及错误应对清单既能当作日常开发速查手册也可用于考前复习或项目实战前的集中强化。1. Linux 实战 100 例不是命令大全而是一套有顺序的训练题「Linux 实战 100 例」是那种看着简单、真练起来能让人冒冷汗的题库。它不按字母序罗列参数而是按场景抛任务找出 7 天内被改过又超过 100MB 的日志、给新用户限死权限、把 Nginx 装起来并开机自启、挂载一台 NAS 存储还要保证重启不翻车。每道题都对应一个真实运维现场刷完一遍你会发现原来抄命令的手感变成了判断问题出在哪一层的能力。适合转行做运维的新人、准备 Linux 面试的求职者以及写了两年脚本但系统管理还是很散的开发者。我拆这套资源时把它按训练顺序重排了位置下面按我的做法讲。2. 把 100 例拆成五个训练段命令、脚本、系统、网络、排错拿到 100 例先别急着从第 1 题刷到第 100 题。我第一次刷就是这么干的刷到 40 题回头看前面的命令已经忘了个干净。后来我把它按场景切成五段高频命令、Shell 脚本、系统与权限、网络与服务、故障排查。这样每一段解决一类问题命令之间天然有关联记忆是挂在真实场景上的不是孤零零的字符串。2.1 为什么按场景练而不是按命令背背命令的问题在于遗忘曲线非常陡。今天记住了awk {print $1}下周遇到「统计日志里每种状态码出现的次数」还是会卡住因为你不知道 awk 要配合 sort、uniq 用。场景化训练的核心是让命令成组出现一个任务至少要组合两三条命令每次重复都是把整条链路走一遍。100 例里的题大多也是复合任务拆开看就是一个一个小场景。这五个段的切法有讲究。高频命令段负责文件查找、文本处理和压缩解压脚本段负责把命令串成自动化流程系统与权限段负责用户、进程和 systemd网络与服务段负责端口、DNS、Nginx 和网络存储故障排查段是把前四段的坑集中踩一遍。这样切完你练每道题之前都知道自己在补哪块短板。2.2 高频命令段先把 find、grep、awk 练成条件反射第一道典型的题是「找出 /var/log 下 7 天内改动过、大于 100MB 的日志文件」。用 find 一条命令就能做# 找出 7 天内改动、超过 100MB 的普通日志文件并显示大小 find /var/log -type f -mtime -7 -size 100M -exec ls -lh {} \;-type f限定只匹配普通文件避免目录和 socket 混进来-mtime -7表示 7 天内修改过注意是修改时间而不是访问时间-size 100M匹配大于 100MB 的文件-exec ls -lh {} \;对每个匹配结果执行 ls{}是文件名的占位符\;是 exec 参数结束的标志少了会直接报语法错误。接着是「列出当前所有监听端口」这类端口排查题。我一般顺手用 ss 加管道# 查看本机所有正在监听的 TCP 端口去掉重复项 ss -tlnp | awk NR1 {print $4} | cut -d: -f2 | sort -uss取代了老的 netstat。-t只看 TCP-l只看监听中的连接-n用数字端口不做反向解析-p显示进程名这也是排查进程间通信最常用的参数组合。管道里 awk 的NR1是跳过第一行表头取第 4 列这列内容是「本地地址:端口」cut 用冒号做分隔取第二段剥离出纯端口最后 sort -u 排序去重。注意-p需要 root 权限普通用户看不到进程名。文本处理题绕不开 grep 和 sed。查配置最常用的组合是递归加文件过滤# 在 /etc/nginx 下递归查找所有 .conf 文件里的 listen 行 grep -rn listen /etc/nginx/ --include*.conf-r递归目录-n显示行号--include只扫描匹配后缀的文件能排除一堆无关的默认配置。这类命令的共通点是参数都要能脱口而出不是会敲就行。2.3 脚本段for、while、case 三个结构覆盖日常 80%命令练熟之后就该练把命令装进脚本。100 例的脚本题其实不考算法考的是三个循环分支结构和退出码的处理。最常见的监控脚本是这样# 检查一组服务是否在线停掉的服务写入 /tmp/check.log for svc in nginx php-fpm mysqld; do systemctl is-active --quiet $svc || echo $svc is down /tmp/check.log donesystemctl is-active检测服务是否激活--quiet让它不输出内容、只返回退出码退出码为 0 表示在线非 0 会被||捕获然后记录日志。这个写法比systemctl status加 grep 干净得多也更快。注意变量一定要加双引号$svc不带引号时如果服务名含空格会被拆成多个参数。while 循环常用来按行读文件比如批量 ping 一批主机# 从 hosts.txt 逐行读取主机名逐个 ping 并判断在线状态 while read -r host; do ping -c 1 -W 1 $host /dev/null 21 echo $host ok || echo $host down done hosts.txtread -r里的-r关闭反斜杠转义防止主机名里的特殊字符被吃掉-c 1只发一个包-W 1表示超时 1 秒重定向到/dev/null是为了不让 ping 的输出刷屏。和||在这里串起来成功打印 ok失败打印 down。输出重定向成列表再配合 awk 统计就是一套小型的存活检测脚本。case 结构适合写有参数的管理脚本比如 nginx 的后台管理# 简易服务管理脚本start|stop|restart 三种动作 case $1 in start) systemctl start nginx ;; stop) systemctl stop nginx ;; restart) systemctl restart nginx ;; *) echo usage: $0 {start|stop|restart} ;; esac$1是脚本第一个参数start)到;;之间是这个分支的命令最后的*匹配所有没命中的输入用来输出用法提示。这类脚本是 100 例里最常考的模板背住结构遇到「写一个备份脚本」「写一个健康检查脚本」都能直接套。2.4 压缩与同步tar、7z、rsync 的基本盘系统备份恢复是面试和运维都绕不开的题压缩和同步是它的两块基础。打包用 tar 是最稳的组合# 把 /etc 目录打包压缩文件名带当天日期 tar czf /backup/etc_$(date %F).tar.gz /etc-c创建归档-z用 gzip 压缩-f指定输出文件$(date %F)会展开成类似 2025-06-10 的日期这样备份文件不会互相覆盖。如果想保留权限和时间戳给 tar 加-p。恢复时的命令是tar xzf etc_xxxxxxxx.tar.gz -C /opt/restore-C指定解压目录。遇到 7z 压缩包Linux 下常见的是7z x# 解压 7z 文件到指定目录保留原有目录结构 7z x /home/user/source.7z -o/tmp/7z_extractx表示解压并保留路径-o指定输出目录注意-o和路径之间没有空格这是 7z 一个容易踩的小坑。生产环境批量同步文件我更习惯 rsync# 同步本地两个目录保持属主和时间戳并保证目标与源一致 rsync -av --delete /data/ /backup/data/-a归档模式合并了递归、保持权限、时间戳等一堆选项-v输出进度--delete会把目标端多余的文件删掉让两边完全一致。这个参数是双刃剑目标路径写错比如漏掉末尾的斜杠可能会导致文件放到错误层级配了--delete再写错就是批量删文件的事故现场。注意rsync 带--delete之前先执行rsync -avn干跑一遍确认目标路径没问题再真正同步。3. 用户与权限新建用户、sudo 提权与最小授权用户是 Linux 系统管理的分水岭。100 例里只要涉及多用户、上线部署、安全问题基本都会落到这一章。会建用户只是开始真正的差距在于能不能控住权限给对的人、给对的命令、不留后门。3.1 新建用户完整动作useradd、chpasswd 与验证很多新手用 adduser 建用户在 CentOS/RHEL 系上 adduser 只是个软链接行为跟 useradd 一致在 Debian/Ubuntu 上 adduser 是交互式封装会一步步问你密码和全名。脚本化场景下我一般用 useradd参数固定不会被交互卡住# 创建用户 dev建家目录、指定 bash、加入 wheel 组 sudo useradd -m -d /home/dev -s /bin/bash -G wheel dev-m表示创建家目录漏掉它用户会有一个不存在的 $HOME很多软件起不来-d指定家目录位置通常配合-m用防止默认路径不符合规范-s指定登录 shell不设的话可能被 lock 掉-G wheel把用户附加到 wheel 组这是 CentOS/RHEL 系 sudo 授权组的名字Debian/Ubuntu 系对应的是 sudo 组。用户建好后设置密码用 chpasswd 比 passwd 更适合脚本# 通过标准输入设置密码格式是 用户名:密码 echo dev:ChangeMe_2025! | sudo chpasswdchpasswd 从 stdin 读取「用户名:密码」的格式批量设置时是循环里最顺手的一行。密码里出现冒号会被截断所以密码别用冒号。设完验证一下id dev输出里能看到 uid、gid 和 groups。uid 1000 以下通常被系统账户占用普通用户从 1000 开始这个约定在 100 例里出现频率很高。给已有用户追加组usermod 是标准做法# 附加 docker 组保留用户原有组 sudo usermod -aG docker dev这里的-a是 append必须配合-G用。只写-G docker会把用户的附加组整个替换成 docker原来在 wheel 组里的权限全部消失这是个非常隐蔽的事故用户明明没动sudo 突然用不了了。我见过不止一个人在这里翻车。3.2 sudo 最小授权别一个 ALL 打天下个人虚拟机里把用户加进 wheel 组图个省事生产环境必须走最小授权。100 例里有一类题就是「给应用账号分配指定命令权限」标准操作是单独建一个 sudoers 文件而不是改主配置# 用 visudo 编辑独立授权文件语法错误会被拦下来 sudo visudo -f /etc/sudoers.d/deploy文件里写一行deploy ALL(ALL) /bin/systemctl restart nginx, /bin/systemctl reload nginx这行的语法是「用户 主机(身份) 命令白名单」。ALL第一部分是主机名匹配单机就用 ALL括号里的 ALL 表示可以切换到任意身份执行命令必须是绝对路径多个命令用逗号分隔。这样 deploy 用户只能重启和重载 nginx改配置、看别的服务、执行 shell 都不被允许这就是最小授权。验证授权是否生效别靠猜用 sudo 自带的列权限命令# 列出指定用户能执行的命令 sudo -l -U deploy-l列出指定用户能执行的命令-U指定用户名。输出会明确显示可执行的白名单如果没有预期中的命令回去检查 sudoers 文件的路径和语法。注意/etc/sudoers.d下的文件权限必须是 0440普通用户可写会导致 sudo 直接拒绝加载整个配置。白名单里带参数的命令要格外小心。允许/bin/rm *和允许/bin/rm区别不大因为 rm 的-rf参数照样能传允许 vi 意味着用户可以借助!bash逃逸成 shell。所以白名单越短越好能用 systemd 统一管理的服务就只放systemctl的指定动作不要放通用编辑器。3.3 批量建号与用户回收脚本化与安全边界批量创建用户是脚本段和权限段交叉的题。网上很多教程直接给初始密码写死在脚本里风险很大。我一般配合 openssl 生成随机密码# 批量创建 3 个用户初始密码随机生成成功后才设置 for user in ops-1 ops-2 ops-3; do useradd -m -s /bin/bash $user echo $user:$(openssl rand -base64 12) | chpasswd done确保 useradd 成功才设置密码用户已存在时 useradd 返回非 0不会覆盖旧密码openssl rand -base64 12生成 16 个随机字符密码强度比写死的强得多。生成的密码需要记录到临时文件里再发给使用者不要直接在循环里 echo 出来会留一大堆历史记录。查看系统里已有哪些普通用户用 awk 翻 passwd 文件比记一堆命令快# 输出 UID 大于等于 1000 的用户名 awk -F: $31000 {print $1} /etc/passwd-F:指定冒号分隔$3是 UID 列。这个技巧在清点账号、排查「哪个用户占用了 uid」时很好用。回收用户的坑主要在 userdel# 删除用户并清理家目录和邮件池 sudo userdel -r olduser-r会连家目录、邮件池一起删。如果这个用户的数据还没备份这就是不可逆操作。我自己的习惯是回收前先tar czf打包家目录到归档目录再从用户列表移除确认一个月没人找才真正删除。100 例里关于用户删除的题考察点从来不是命令本身而是删除前的判断和备份意识。4. 网络与服务Nginx 部署、NAS 挂载与三层排查网络段是 100 例里「对着答案看都懂关掉文档就翻车」的重灾区。原因很简单网络问题层层嵌套现象暴露在应用层根源可能在网卡、防火墙或 DNS少看一层就多折腾半小时。这一章的题我建议按部署和排查两条线走。4.1 从零部署 Nginx装包、自启、防火墙部署 Nginx 是最高频的题。在 CentOS/Rocky 上直接dnf install nginx大概率会提示找不到包主流做法是先启用 EPEL 扩展源# 安装 EPEL 扩展源再安装 nginx sudo dnf install -y epel-release sudo dnf install -y nginx-y表示自动确认安装。如果不想依赖 EPEL可以走官网源或源码编译但源码编译要先装 gcc、make 等工具链维护成本高日常部署我基本都是 dnf 装官方包。Debian/Ubuntu 系则直接用apt install nginx源里自带没有这步。装完启动并设开机自启# 启动 nginx 并加入开机自启一条命令完成 sudo systemctl enable --now nginxenable --now是 enable 和 start 的组合比分开敲少一次状态不一致的机会。验证是否真的起来了先看本机# 只拿响应头3 秒超时确认 HTTP 服务有响应 curl -I --connect-timeout 3 http://127.0.0.1 systemctl status nginx --no-pagercurl -I只取响应头不下载页面--connect-timeout 3防止 connect 阶段挂死--no-pager让 systemctl 不要进分页器直接把状态打出来脚本里也常用。本机通不代表外部能访问防火墙是下一道门槛# 放行 http 服务并重载防火墙规则 sudo firewall-cmd --permanent --add-servicehttp sudo firewall-cmd --reload sudo firewall-cmd --list-services--permanent把规则写进持久化配置不加它 reload 后规则就没了--reload重新加载--list-services核对当前放行的服务清单。经典翻车现场是本机 curl 通另一台机器访问超时最后发现 http 服务在 firewalld 里没放行而旧教程还在让你关防火墙。放行单个服务而不是整机关闭是生产环境的基本要求。4.2 挂载 NAS 存储mount 与 fstab 的坑NAS 挂载题考察的是网络文件系统的挂载和持久化。以 NFS 为例先装客户端工具再挂载# 安装 NFS 客户端创建挂载点挂载远程目录 sudo dnf install -y nfs-utils sudo mkdir -p /mnt/nas sudo mount -t nfs4 192.168.10.10:/data /mnt/nas-t nfs4指定 NFS 版本老环境可能只支持 nfs 或 nfs3遇到mount.nfs: Protocol not supported就换成-t nfs再试。挂载后df -h | grep nas确认容量和挂载点。这只是半成品重启后挂载会消失需要写进 /etc/fstab192.168.10.10:/data /mnt/nas nfs4 defaults,_netdev,noatime 0 0defaults,_netdev是关键_netdev告诉系统这是网络设备等网络就绪后再尝试挂载不加这条开机时网络还没起系统会一直卡在挂载等待上最后进 emergency mode。noatime减少读操作时的访问时间回写对 NAS 这类远程存储能省不少 IO。遇到 SMB/CIFS 共享比如群晖的共享文件夹或 Windows 共享挂载命令加认证参数# 挂载 CIFS 共享指定用户和 SMB 协议版本 sudo mount -t cifs //192.168.10.20/share /mnt/share -o usernamenasuser,vers3.0-o里username是共享账号名vers3.0指定 SMB 3.0。老服务器如果只支持 SMB1这个参数要改成vers1.0但因为安全原因现代系统默认禁用 SMB1首选是升级服务器端而不是降版本。CIFS 挂载出现mount error(112): Host is down时先 ping 确认主机通再看 vers 是否匹配这两个问题占了大多数。注意改完 /etc/fstab 先执行sudo mount -a验证确认没有报错再重启不要直接 reboot 赌运气。fstab 改完千万别直接重启验证先执行 mount -a 预演一遍# 按 /etc/fstab 挂载所有未挂载项验证配置没有语法错误 sudo mount -a有报错当场就能看到不用赌重启。mount -a是验证 fstab 的后悔药我改完任何挂载项都会先跑这一条再考虑重启。4.3 三层排查ping、端口、应用逐层缩小范围排查题讲究顺序。网络不通时我习惯从下往上查先链路和网络层再传输层最后应用层。# 第一层ping 网关确认本机到内网通不通 ping -c 3 -W 1 192.168.10.1 # 第二层看本机 80 端口是否在监听 ss -tlnp | grep :80 # 第三层用 curl 验证应用层响应 curl -I --connect-timeout 3 http://192.168.10.10 # 第四层确认域名解析结果 nslookup app.example.com 192.168.10.2ping -c 3发 3 个包-W 1超时 1 秒而不是默认的无限等ss -tlnp | grep :80 在端口后面加空格是为了避免把 8080 也匹配进来curl 加超时防止卡死nslookup 第二个参数指定 DNS 服务器避免走系统里可能被污染的配置。把这四步串起来定位规律是这样的现象第一步通过后的下一跳完全无法访问ping 网关查网卡和路由网关通、外部不通ping 对端 IP查防火墙和路由IP 通、端口不通ss 查本机监听查防火墙放行规则端口通、域名不通nslookup 查解析查 /etc/resolv.conf顺序不能跳。很多人一上来就抓包抓了半天发现是机器之间网线没通白费时间。先 ping再端口再应用每层都能回答「通还是不通」问题范围立刻缩小一半。4.4 DNS 的隐藏坑resolv.conf 与 getent 的玄学DNS 是网络排查里最玄学的一层因为现象和原因经常隔着两层。最典型的题是「nslookup 能解析curl 却报域名找不到」。原因多半是应用没有走 nslookup 查的那台 DNS而是走了系统配置。系统实际的解析路径最好用 getent 验证# 走 nsswitch 配置解析主机名贴近应用的真实解析路径 getent hosts app.example.comgetent会按 /etc/nsswitch.conf 的配置依次查文件、DNS、NIS 等比 nslookup 更接近应用的实际行为。另一个隐藏坑是 /etc/resolv.conf 被 NetworkManager 或 systemd-resolved 接管用户手工改了重启之后又被覆盖。判断是不是被接管看文件头部注释如果有「Generated by NetworkManager」字样正确做法是在 NetworkManager 的连接配置里改 DNS而不是直接编辑 resolv.conf。这台机器的 hostname 也常被归到网络段。改主机名的标准命令是 hostnamectl# 设置静态主机名并查看当前状态 sudo hostnamectl set-hostname app-server hostnamectl statushostnamectl status会同时显示 static、transient 等主机名状态改完能立即看到效果不必重启。如果发现 shell 提示符没变重开一个终端就是新主机名。这几道题刷完网络段的基本盘就稳了。5. 故障排查与避坑rm 误删、黑匣子日志与虚拟机蓝屏100 例里最有含金量的是排错段因为它考的从来不是知识而是习惯先复现、再缩小范围、最后动手。我把刷题和实际运维里翻车最多的三个场景写下来每条按「现象 → 原因 → 解决」展开都是我踩过或者看着同事踩过的坑。5.1 rm 误删变量为空与未加引号的两记重锤现象脚本里写了rm -rf $LOG_DIR/某次运行 LOG_DIR 没赋值执行后当前目录被清空系统直接损坏。原因没开set -u变量展开成了空字符串$LOG_DIR/实际变成/rm -rf 顺着根目录一路删下去。这是删目录类脚本最经典的事故网上每年都有翻车帖。第二个变体是路径写死末尾斜杠比如rm -rf $dir/当 dir 是/home/app时正常可一旦 dir 变成空串又变成删根。解决脚本第一行写set -eu-u让未定义变量直接报错退出从源头杜绝这种展开删除前用[[ -n $dir ]]判断变量非空命令写成rm -rf -- $dir--结束参数解析$dir整体作为一个参数防止路径里带空格或开头是减号。更大的保护是不用 rm 而先 mv 到回收目录# 删除前先移动到临时回收区确认无误再清空 mv $dir /tmp/trash_$$ echo 已移至回收区确认后手动删除这样即使路径算错文件还在 /tmp 里有后悔药吃。从那之后我写任何包含 rm 的脚本都会保留这条「先移后删」的习惯。5.2 systemd 服务起不来但日志为空黑匣子怎么打开现象systemctl start app返回 failedsystemctl status app显示进程退出但journalctl -u app里什么输出都没有服务像个黑匣子。原因最常见的三种。一是 ExecStart 指向的脚本把 stdout/stderr 重定向到了文件journald 采不到二是 ExecStart 里用了包含特殊字符的命令systemd 解析出错但没有把原始错误打出来三是二进制路径不存在systemd 启动失败但错误行被服务自身的输出淹没。解决先在 unit 里显式指定日志输出方式# 强制把服务的标准输出和错误输出交给 journald StandardOutputjournal StandardErrorjournal加完systemctl daemon-reload再启动journalctl -u app 就能看到真实报错。另一个有效动作是用 systemd-analyze 做静态校验# 检查 unit 文件的语法和路径引用 systemd-analyze verify /etc/systemd/system/app.service它会把 ExecStart 里不存在的命令路径、非法参数直接报出来比反复 restart 试错快得多。遇到还是没有输出的情况手工去 shell 里执行一遍 ExecStart 的完整命令通常能立刻复现权限不足、命令不存在、环境变量缺失都会在终端里现形。日志是排错的第一现场让日志先落地问题就解决了一半。5.3 虚拟机装 Linux 蓝屏镜像与虚拟化的两处排查现象VMware 或 VirtualBox 里安装 Linux 发行版安装到一半宿主机蓝屏或者虚拟机开机直接黑屏。原因排查下来最常见的有三类。镜像下载不完整安装器读到损坏的数据触发崩溃宿主机开启了 Hyper-V、内核隔离等虚拟化功能和 VMware/VirtualBox 的虚拟化引擎抢 CPU 硬件虚拟化资源虚拟机设置里开启了不兼容的加速选项比如 VirtualBox 的 3D 加速在某些显卡驱动下会黑屏。解决装系统前先校验 ISO 校验和# 对比镜像的 SHA-256 校验和完整性问题先排除 sha256sum /path/to/linux.iso和下载页的官方校验和比对不一致就重新下载。宿主机在 Windows 上蓝屏的去「启用或关闭 Windows 功能」里关掉「虚拟机平台」和「Hyper-V」或者改用 WSL2 跑发行版避免两套虚拟化打架。VirtualBox 黑屏的在设置里关闭 3D 加速、启用嵌套分页再重新安装。蓝屏后不要急着重装抓一下系统事件查看器里崩溃前几分钟的日志确认是不是指向 hypervisor这个信息能明显缩短排查时间。虚拟机问题是 100 例里偏环境的一类但它训练的是同一个能力先分层缩小范围不要看到蓝屏就整机重装。6. 验证与提速把题库变成每天随机抽三题的自测脚本100 例刷完第一遍最大的风险是「假会」看答案秒懂合上书全忘。我的做法是把题库变成自测工具每天随机抽 3 题限时完成不许翻资料。随机抽题用 shuf 一行解决# 从 1 到 100 里随机抽 3 个数字作为今天的练习编号 shuf -n 3 -e {1..100}shuf 的作用是随机打乱输入序列-n 3表示只输出 3 个结果-e后面的{1..100}展开成 1 到 100 的数字列表。抽到题号后我给自己 10 分钟在终端里把命令写出来并执行不看 history、不看 man、不翻笔记。十分钟内能跑出预期结果算过关跑不出来的翻回 100 例对应的章节重新做一遍第二天再抽一次同区间题目。这里再多说一个判断掌握程度的标准不是「敲出来了」而是「能讲清楚为什么」。比如ss -tlnp里每一个参数不理解下次换个场景照样卡住。自测完对照下面三个问题过一遍能否不看文档写出完整命令能否解释每个参数的作用出错时能否按「ping → 端口 → 应用 → DNS」的顺序自己定位。三条都满足才是真会。还可以把高频命令固化成 alias减少日常敲击成本# 把常用排查命令固化为简短别名 alias portsss -tlnp alias nginx-okcurl -I --connect-timeout 3 http://127.0.0.1 alias untartar xzvfalias 放在 ~/.bashrc 里重开终端生效。注意别名不要造太多超过 10 个自己就记不住了真正高频的才值得固化。我自己的感受是刷完第一遍 100 例后自我感觉非常良好结果一次线上排查明明该先 ping 再查端口我直接去翻应用配置白费了二十分钟。从那以后我每次练题都强制走一遍「随机抽题 → 限时 → 不看资料 → 复盘」的流程一百道题才真正从文档变成了手艺。希望帮到你。本文还有配套的精品资源点击获取