ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Linux命令实战指南:从底层原理到高频场景的全流程梳理

Linux命令实战指南:从底层原理到高频场景的全流程梳理 很多人以为Linux命令是靠死记硬背堆出来的其实恰恰相反。我见过不少简历上写着“熟悉Linux命令”的新人到了生产环境连日志都翻不明白也见过只靠几个命令组合就在故障现场救火的老手。2026年了网上的“Linux命令大全”铺天盖地但大部分只是把命令罗列出来缺的是背后的使用逻辑和避坑经验。这篇文章我按一条完整的成长路径来讲先搞懂命令的底层结构再吃透文件操作和文本处理接着梳理权限、进程、网络这些高频场景最后把命令组合、脚本化和危险操作一次说清。不管是零基础准备入行还是面试前查漏补缺又或是日常运维想系统化整理一遍这篇都可以当一张随时查阅的导图。1. 命令的本质为什么说Linux命令是一个个独立程序先讲一个容易被忽略但很关键的底层认知Linux里几乎所有的命令都是独立的可执行文件放在/bin、/usr/bin这类目录里。你敲的ls本质上是系统在环境变量PATH指定的路径列表中找到了ls这个程序并运行它。命令之间相互独立通过标准输入、标准输出和管道串联成一条流水线。明白了这一点你就能想通两件事第一命令为什么可以自由组合第二为什么有的机器上能跑的命令换台机器就提示command not found。1.1 一条命令的三段式结构是怎么运转的以最常用的ls -al /etc为例这一行可以拆成三段ls是命令本身-a和-l是选项/etc是参数。选项用来调整命令的行为参数用来告诉命令操作的对象。短选项用一个横线加字母表示长选项用双横线所以--all和-a其实是同一个选项的两种写法。新手经常分不清短选项能不能合并。规律其实很简单不带参数的短选项可以合并需要带参数的短选项要分开写。比如ls -lh里的-l和-h都是独立选项可以合在一起而tar -czvf archive.tar.gz /data里的-c、-z、-v能合并但-f后面必须紧跟文件名所以它得单独保留。理解了这条规律看别人脚本里的长命令就不会一头雾水。我在实际环境里的习惯是遇到不太熟悉的命令先执行command --help | less或者man command把关键选项确认一遍再动手。尤其是涉及删除、覆盖这类不可逆操作时多花几十秒查文档能避免大几百倍的时间去善后。拿tar来说参数种类多且容易混淆一个包解错位置目录结构就乱了这种事我见识过不止一次。1.2 命令来源与PATH为什么有的命令敲不了Linux命令有三个来源shell内建命令、外部程序、你自己安装的工具。外部命令执行时shell会在PATH环境变量列出的目录里查找可执行文件可用echo $PATH查看。如果系统提示command not found大多数情况是这个命令没装对应不同发行版需要用不同的包管理方式处理比如Debian系是apt installRHEL系是yum install或dnf install。还有一种情况比较隐蔽命令在系统里存在但它的路径不在当前用户的PATH中。这种时候可以用绝对路径执行比如/usr/local/bin/mycommand也可以把对应目录加进PATH。排查命令来源最直接的工具是type和whichtype cd会显示cd is a shell builtintype ls会告诉你它是/usr/bin/ls还是一个别名。这些细节看着不起眼但能解决很多“明明照着教程敲了却报错”的困惑。1.3 man手册的阅读方法man是每一个Linux用户都必须尽早掌握的命令它决定了你后续自学其他命令的效率。man ls会打开该命令的完整说明文档初次进去会有点懵但操作方式核心就几个空格向下翻页、b向上翻页、/关键词搜索、n跳到下一个匹配项、q退出。想快速定位某个选项最有效的是输入/-l然后回车光标会直接跳到所有出现-l的位置配合n逐个查看。man手册还分章节比如man 1 ls是用户命令man 5 passwd是配置文件格式man 8是系统管理命令。当某些命令的手册不显示或内容错位时指定章节号是常用解决办法。我个人的搭配是用man确认参数语义用command --help快速回忆选项两者结合效率最高。别指望一次读完整个手册那既不现实也没必要带着当前的问题去查查完记下要点这才是正确用法。2. 目录导航与文件操作Linux文件系统的第一课文件系统是Linux操作的主战场。它的整体结构是树形的根目录/是逻辑起点下面挂着/home、/etc、/var、/usr、/tmp、/opt等目录。/etc存放配置文件/var放日志和队列数据/usr放安装的应用程序/tmp是临时文件区/home是普通用户的家。在不同发行版里这些目录的细节会有差异但整体逻辑非常稳定。我建议新手把pwd、cd、ls这三个命令练成肌肉记忆它们是所有文件操作的基础。2.1 pwd与cd先搞清自己在哪里再去哪pwd输出当前所在目录的绝对路径这是排查路径问题时的第一动作。cd用于切换目录除了常规的绝对路径和相对路径几个变体尤其好用cd不带参数回到当前用户的家目录。cd -回到上一个所在目录。在业务目录和日志目录间来回切换时这个最省时间。cd ..进入上一级目录。cd ~user进入指定用户的家目录前提是有相应权限。相对路径和绝对路径必须分清楚。绝对路径必定以/开头相对路径基于当前目录推算。比如从/home/user/projects出发../logs指向的是/home/user/logs。日常输入路径时我强烈建议全程使用Tab自动补全既能避免打错字也能减少相对路径推算错误。2.2 ls -l输出的每一列代表什么意思ls -l的详细输出信息量很大。以-rw-r--r-- 1 root root 1024 Jan 1 00:00 test.txt为例第一列文件类型与权限。-开头是普通文件d是目录l是软链接c是字符设备b是块设备。第二列硬链接数量。第三列和第四列属主和属组。第五列文件大小单位是字节加了-h参数会变成易读的K/M/G格式。第六到九列修改时间。最后一列文件名。学会读这一列信息是运维的基本功。比如你看到某个脚本没有x权限就知道它为什么执行不了看到某个目录属主不对就知道程序可能没有写权限。关于时间还有个细节ls -l默认显示修改时间ls -lu显示访问时间ls -lc显示状态变更时间。想查文件被哪个进程打开则需要用到lsof或fuser这属于进阶内容这里先不展开。2.3 touch、cp、mv、rm的正确打开方式touch有两个用途创建空文件或者更新已有文件的访问时间和修改时间。后者在触发某些按时间戳判断的构建任务时很有用。复制文件用cpcp -av 源 目标是稳定组合-a会保留权限、时间戳等属性-v显示过程。复制目录必须加-r否则会报错。这里有个我的个人习惯复制大目录时我会优先用rsync而不是cp -r。rsync支持增量同步和断点续传rsync -avP 源/ 目标/能看到进度在生产环境里比cp可控得多。移动或重命名文件用mv语法是mv 源 目标。跨分区移动时mv会执行拷贝加删除速度可能比同分区慢不少。删除文件用rm这是所有文件命令里最需要谨慎的。我建议正式服务器上先设置alias rmrm -i让每次删除前都确认一遍。遇到重要目录宁可先mv到/tmp这样的临时位置过几天确认没问题再真正删除。2.4 通配符、花括号展开和find批量定位通配符由shell负责展开三个基础的符号是理解重点*匹配任意多个字符但不匹配以点开头的隐藏文件。?匹配单个字符。[...]匹配括号内的字符集合比如[0-9]匹配数字[abc]匹配a、b、c中的任意一个。实战举例*.log匹配当前目录下所有以.log结尾的文件file?.txt匹配file1.txt、fileA.txt但不匹配file.txt[0-9]*.log匹配数字开头的.log文件。花括号展开比通配符更进一步能生成一组字符串组合。比如touch {a,b,c}.log一次创建三个文件mkdir -p backup/{2026,2025,2024}/{01..12}一条命令建出三年的月度目录。批量创建测试环境、生成多份配置文件时花括号展开是效率神器。find命令虽然属于文件查找但因为经常和文件操作结合也放在这里讲。find /data -name *.log -mtime 7 -print可以列出7天前的日志文件确认无误后再执行删除不是直接删。很多人喜欢用find /data -name *.log -mtime 7 -exec rm {} \;一步到位但我的建议是先-print看结果再加删除动作。这个流程看似啰嗦实则是防手滑的护栏。3. 文本处理三叉戟grep、sed、awk外加rg和jq命令行真正拉开差距的地方是文本处理。看日志、统计接口数据、批量改配置、处理接口返回都离不开这三个工具grep、sed、awk。它们不是孤立存在的经常被管道串成一条处理链。把它们当成一套联合使用的工具箱来学比分开零散地记效果要好得多。2026年的今天很多同事已经换上了ripgrep和jq这类现代工具但老家伙们依然是所有环境下的公分母值得学透。3.1 grep从日志中捞出目标的基本功grep的基本用法是grep [选项] 模式 [文件]。不指定文件时grep会从标准输入读取所以它经常出现在管道里比如cat access.log | grep POST和grep POST access.log作用相同但后者更简洁少一次管道开销。我最常用的grep选项组合-n显示行号定位问题位置非常关键。-i忽略大小写。-v反向匹配输出不包含模式的行。-c统计匹配行数。-r递归搜索目录。-E启用扩展正则表达式。正则方面基础正则和扩展正则的差异主要在于是否支持、?、|、()。grep -E error|warning能同时匹配两种级别grep -E ^[0-9]{1,3}\.匹配以IP开头的行。实际生产中用-E就足够覆盖绝大多数场景-P虽然支持更强大的Perl语法但性能和兼容性不一定理想。分享一个实际排查场景有一次线上服务报内存溢出我用grep -n OutOfMemory定位到报错行号再用sed -n 1234,1245p看上下文窗口十分钟就锁定了出问题的方法。这就是文本三件套合用的典型操作。3.2 sed流式编辑与批量替换sed是流式编辑器它逐行读取、处理、输出不会把整个文件一次性读进内存所以即使是超过内存大小的大文件也能处理。最常见的操作是替换sed s/旧内容/新内容/g file末尾的g表示整行全局替换不加则每行只替换第一处。sed还能做删除、抽取和范围打印sed /pattern/d file删除匹配行。sed -n 10,20p file打印第10到20行。sed -n /start/,/end/p file打印从start匹配行到end匹配行之间的内容这在日志里抽一个时间段特别有用。用sed修改原文件必须加-i参数。我强烈建议先不加-i跑一遍确认输出正确后再真正执行改动改生产配置文件前先cp file file.bak备份。有一次我直接用sed -i s/#Port 22/Port 22/ /etc/ssh/sshd_config修改SSH端口虽然命令本身没问题但如果当时没有备份万一写错很容易把远程连接搞断。3.3 awk字段切割和统计的利器awk从文本的每一行里按分隔符切出字段默认分隔符是连续空白。$0代表整行$1是第一个字段$NF是最后一个字段NF是字段总数。awk {print $1} access.log提取每行第一个字段这是拿IP最常见的写法。指定分隔符用-F比如-F :按冒号分隔。awk支持条件判断和BEGIN/END块。几个高频用法统计404请求数awk $9 404 {count} END {print count} access.log统计访问次数最多的IPawk {print $1} access.log | sort | uniq -c | sort -rn | head -10求和awk {sum $1} END {print sum} file这里顺便说下sort和uniq的配合uniq -c统计的是连续重复行的次数所以必须先sort把相同内容聚到一起否则统计结果是错的。sort -rn按数值倒序排列。虽然awk能写完整脚本但我建议只做轻量统计和字段提取。任务复杂度一旦上来直接转用Python脚本维护起来更舒服。命令行里的awk胜在一步到位。3.4 现代工具ripgrep和jq补充rg是grep的高性能替代品搜索速度通常快好几倍默认会忽略.gitignore里的文件输出带彩色高亮和文件路径。搜索代码时rg -n funcName递归当前目录一目了然搜索日志时rg https?://配合正则也很直观。老系统上没装rg就用grep新机器上装一个效率提升明显。JSON场景下jq是绕不开的利器。curl -s https://api.example.com/data | jq .输出格式化后的JSONjq .users[] | {name, age}抽取数组元素的指定字段jq .users | length得到数组长度。很多情况下jq内部自带map、select等函数就能完成聚合比转到awk再处理更省事。日志如果是JSON格式输出我先用jq做结构化再配合管道做下一步搜索效率和可读性都会高很多。4. 权限管理用户、组和权限位的计算逻辑权限是Linux安全模型的基石。不同账号能看到的文件不同能执行的操作也不同。很多新手一上来就chmod 777把文件设成任何人可读可写可执行这在单机学习环境还好放到生产环境就是安全隐患。理解权限设计背后的逻辑比记住几条命令重要得多。4.1 rwx的语义和数字表示的换算r、w、x对文件和目录的意义完全不同。对文件来说r可以读取内容w可以修改内容x可以执行文件对目录来说r可以列出目录内容w可以在目录内新建或删除文件x可以进入目录。单独的r没有x时你能列出文件名但进不去目录。所以排查“为什么能看到文件但仍打不开目录”的问题时先检查目录的x位。数字权限是把rwx三位二进制相加得到的r4、w2、x1。742164254144。常用组合权限值属主属组其他人典型用途644rw-r--r--配置文件标配755rwxr-xr-x脚本、目录700rwx------私密目录600rw-------密钥文件我常跟新人说的一句话权限越少越安全。除非业务有明确需求否则别随便给“其他人”加写和执行权限。每次改权限前想一下这个权限是不是真的需要这个习惯能挡住大部分安全问题。4.2 chmod和chown的实用操作与检查习惯chmod设置权限chown修改属主和属组。符号模式适合局部调整chmod ux script.sh给属主增加执行权限chmod g-w file去掉属组的写权限chmod ar file给所有人加读权限。数字模式适合统一设置chmod -R 755 /data/web给网站目录设统一权限。chown的典型操作是chown -R www-data:www-data /var/www/html把网站目录所有权交给Web服务用户。修改软链接时chown默认修改的是链接指向的目标文件想改链接本身要加-h参数。每次变更权限后用ls -l验证效果也可以用stat file查看完整信息。这个“改完就验证”的习惯能避免很多服务重启才发现权限不对的尴尬。我见过同事改完配置权限忘了验证重启服务失败排查半天才发现少了一位权限。4.3 sudo、setuid、粘滞位权限放大要当心sudo让授权用户以root身份执行指定命令权限放大的同时风险也同步放大。编辑/etc/sudoers配置文件时一定要用visudo而不是直接vim因为visudo会做语法校验避免你写错配置后sudo系统全部失效。生产环境建议遵循最小权限原则只给运维人员某几条命令的sudo权限比如只允许sudo systemctl restart nginx而不是给全部root权限。特殊权限位也值得关注。setuid数字4前缀允许其他用户以文件属主的身份执行该程序最常见的例子是/usr/bin/passwd普通用户能通过它临时提升权限写/etc/shadow文件。setgid数字2前缀让目录内新建的文件自动继承目录的属组常用于团队共享目录。粘滞位数字1前缀典型体现在/tmp目录的权限上任何人都能创建文件但只有文件属主能删除自己的文件。查看权限位时如果出现s或t字母就代表设置了这些特殊位。这三个语义在面试中属于高频考点建议自己搭个环境手动实验一次。5. 进程与资源监控系统卡顿后的排查路径我经历过好几次半夜被叫起来的场景接口超时、数据库连接数飙升、服务器负载飙高。如果平时没养成监控命令的肌肉记忆事到临头会很被动。这一章串起进程、内存、磁盘和日志四类命令形成一套可复用的排查思路。5.1 进程查看、排序、定位和信号定位高CPU、高内存的进程是基本功。ps aux输出所有进程配合管道排序可以快速找到罪魁祸首ps aux --sort-%cpu | head -15查看CPU占用最高的15个进程。ps aux --sort-%mem | head -15按内存占用排序。ps -ef输出格式更紧凑适合查看进程的父子关系和完整启动命令。动态刷新CPU使用率用top进入后按P按CPU排序按M按内存排序。htop的交互和配色更友好按F6可以选择排序字段还支持直接按进程树浏览推荐安装使用。找到进程PID后用kill PID发送15号信号SIGTERM这是请求进程优雅退出kill -9 PID发9号信号SIGKILL直接强杀。两者的区别在于SIGTERM给了进程清理资源和保存状态的机会而SIGKILL是强制终结。数据库、配置中心这类进程即使强杀大概率不会丢数据但可能触发复制和恢复逻辑所以尽量先给SIGTERM观察几秒没反应再升级到SIGKILL。5.2 内存、CPU、磁盘利用率怎么看free -h查看内存总量和使用情况。很多新人看到buff/cache占用高就认为内存泄漏实际上这是Linux的正常缓存机制系统会把空闲内存用来缓存文件数据需要时能自动释放。真正的警报信号是Swap使用持续增长CPU的wa等待IO值飙升这说明内存不够或者IO有瓶颈了。磁盘方面df -h查看整个分区的容量和剩余空间du -sh 目录看单个目录大小du -h --max-depth1 目录递归列出下一层各子目录的大小。日志目录/var/log往往是占满磁盘的高危区结合find和du找出大文件后再决定是清空还是轮转。CPU负载可以用uptime看1分钟、5分钟、15分钟的平均负载三个数值能大致判断负载是在上升还是下降。想看更细的指标mpstat、vmstat能提供CPU各项占用率和IO等待等信息。5.3 systemd服务管理和日志排查主流发行版统一使用systemd之后管理系统服务的基本命令收敛为systemctl。几个高频操作systemctl status nginx查看服务运行状态失败时会给出原因提示。systemctl restart nginx重启服务。systemctl enable --now nginx设置开机自启并立即启动。systemctl daemon-reload修改了service单元文件后刷新配置。服务起不来的情况systemctl status基本会给出失败原因。日志排查由journalctl负责journalctl -u nginx查看指定服务日志。journalctl -u nginx -f持续跟踪日志输出。journalctl --since 1 hour ago查看最近一小时日志。journalctl -k查看内核日志。journalctl输出通常很长习惯性加| tail -100或配合grep使用会更高效。遇到使用旧式syslog的老系统日志文件在/var/log/messages或/var/log/syslog路径可能不同先确认系统类型再动手。6. 网络排查一条龙连通性、端口、域名网络问题排查是有套路的。我平时遵循一套固定顺序先看本机网络接口再ping对端然后检查端口接着查DNS最后用curl验证上层服务。按这个顺序逐层排除能快速缩小问题范围。别一上来就抓包那是最后的手段。6.1 先看本机网络层ip命令替代ifconfigip addr show查看网卡接口名、MAC地址、IPv4/IPv6地址和运行状态。接口处于down状态而物理链路正常时用ip link set eth0 up启用。老派的ifconfig eth0 up也能用但新系统可能没有安装ifconfig。路由信息用ip route show查看要新增默认路由用ip route add default via 网关IP。配置永久静态IP通常需要改网卡配置文件或通过NetworkManager管理这里先记住查看逻辑线上操作时再去查具体配置。ip是ifconfig的现代替代品新用户建议直接学ip系列。6.2 ping连通性与traceroute定位断点ping -c 4 目标IP发送4次ICMP包观察丢包率和往返时间。丢包率高说明链路不稳定如果本机能ping通内网但外网不通常见原因是默认路由错了用ip route确认默认路由是否存在且正确。中间网络复杂时用traceroute 目标IP它会逐跳显示路径和延迟。可以看到数据包在哪一跳开始丢包或者延迟明显变高。需要注意如果中间路由或防火墙屏蔽了ICMPtraceroute显示不全很正常不一定代表路径断了。这个命令定位跨网断点特别好用但也别过度解读。6.3 端口监听与连接状态检查本机端口第一命令就是ss -tlnp-t表示TCP-l表示监听状态-n显示数字端口-p显示对应进程。服务明明配了监听端口却访问不通先用ss确认服务是否在监听如果没监听那就是服务本身没起来或配置有问题。检查远端端口连通性用nc -zv 目标IP 端口比如nc -zv 10.0.0.5 3306测试MySQL端口。没有nc时可以用timeout 2 bash -c /dev/tcp/目标IP/端口做快速检测。ss -tn能按状态统计大量连接看到大量SYN_RECV状态的连接可能是SYN队列溢出大量TIME_WAIT连接则要看是否存在频繁的短连接通常需要考虑连接复用。这些状态统计在生产环境排查中很实用。6.4 DNS解析和HTTP层验证域名解析问题用nslookup或dig。dig example.com显示A记录、CNAME、TTL加short只看精简结果。改了DNS记录没生效需要检查本地缓存、TTL周期以及是否使用了自定义DNS服务器。HTTP层的验证离不开curl。几个高频用法curl -I https://example.com只看响应头判断服务是否正常。curl -v https://example.com显示整个请求过程包括TCP握手、TLS握手、请求头、响应体排查超时和重定向特别好用。curl -s -o /dev/null -w %{http_code} https://example.com只输出状态码适合接口可用性检测。curl -X POST -d {name:test} -H Content-Type: application/json URL发送JSON格式的POST请求。下载文件用curl -O或wget后者更适合断点续传。我的经验是先用curl看响应状态基本就能判断是TCP层的问题还是HTTP层的问题再决定要不要进入更复杂的抓包工具。7. 组合运用和避坑管道、脚本以及那些危险命令单独记住命令没有尽头真正的能力在于把命令组合成流水线。这一章讲管道、重定向、xargs和基础脚本最后盘一盘那些在服务器上必须三思而行的命令。7.1 管道与重定向工具流的水管管道符号|把前一个命令的标准输出接到后一个命令的标准输入。几个经典示例ls -la | grep -E ^d只显示目录项tail -f app.log | grep ERROR实时跟踪日志里的错误行ps aux | sort -k3 -rn | head按CPU字段排序取前几行。管道把多个简单命令组合成一个更强的整体这是命令行模型的精髓。重定向是管道之外的另一个基础。覆盖写入追加写入2重定向标准错误21将错误合并到标准输出。一条知识sh deploy.sh deploy.log 21能把命令的普通输出和错误输出都写进同一个日志文件这是脚本日志收集的标准写法。/dev/null表示丢弃输出适用于只关心命令是否成功而不需要看输出的场景。7.2 xargs与while read参数转换器xargs把前一个命令的标准输入转换成后一个命令的参数。最经典的例子是find /tmp -name *.tmp | xargs rm -f但文件名含空格时会出问题。推荐的做法是配合-print0和-0使用空字符分隔find /tmp -name *.tmp -print0 | xargs -0 rm -f这样可以安全处理任意特殊文件名包括空格、引号等。另一个常用场景是批量压缩目录下的所有.py文件find . -name *.py -print0 | xargs -0 -I{} gzip {}。除了xargs也可以用while read循环while read line; do command $line done file两种方式在文件名转义规则上不同处理特殊字符时优先选带-0的xargs。7.3 从命令行到脚本的进阶路径当一组命令反复出现就该封装成脚本了。一个最简单的发布脚本示例#!/bin/bash set -e cd /home/user/project git pull make build systemctl restart myserviceset -e让脚本遇到任意非零退出码就退出这个选项非常重要新人经常忽略结果命令失败还会继续往下执行造成更严重的后果。基础规范包括变量赋值不能有空格比如nameuser而不是name user执行脚本前用bash -n script.sh检查语法给脚本加执行权限chmod x script.sh后执行./script.sh。脚本接受外部参数时用$1、$2代表第一、第二个参数$?判断上一条命令的执行结果0为成功非0为失败。当你掌握了这些配合cron定时任务就能把日常巡检工作自动化。自动化运维就是从这里起步的不是多高深的技术而是从小脚本开始积累。7.4 危险命令识别与检查清单最后盘点几类在服务器上必须再三确认的操作。这些命令不是不能用而是用之前必须有明确的认知和预案。rm -rf /、rm -rf *删除根目录或当前目录所有文件。操作前先pwd、ls甚至先echo把命令打印出来看看因为*的范围可能比你想象的大。重定向覆盖系统文件比如 /etc/nginx/nginx.conf一次误操作直接覆盖配置。修改重要配置前先备份副本。格式化或分区操作mkfs.ext4 /dev/sdb、fdisk /dev/sda直接改变磁盘结构数据瞬间没救。dd写入磁盘dd if某镜像 of/dev/sda如果of参数写错盘符整个系统直接消失。用dd前务必确认if、of、bs、count参数。chmod -R 777 /一次性放开全系统权限等于拆掉安全门。远程服务器的网络操作比如ip link set eth0 down可能会直接断掉SSH只能通过机房控制台自救。执行这类操作前先确认是否有备用会话和回滚手段。我自己的个人规则是在危险命令前面加一个echo先打印执行计划确认无误后再去掉echo真正执行。简单到不能再简单但已经拦下我很多次手滑。写到这里我最想强调的还是那句话Linux命令是被“用”出来的不是被“背”出来的。就算你只把grep、sed、awk、ps、ss、curl这几个核心命令练熟配合管道、脚本和man手册已经能在绝大多数场景下解决问题。收藏这篇大全之后更建议把它的章节拆成自己的“命令地图”按需查漏补缺。毕竟命令行这东西真正派上用场的时候往往是在半夜处理故障的现场。到那时你会发现平日的积累才是最大的底气。
返回列表