十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

Linux常用命令实战笔记:从文件管理到系统排障

Linux常用命令实战笔记:从文件管理到系统排障 从 Windows 切换到 Linux尤其是现在国产桌面系统越来越普及的朋友十有八九都问过我同一个问题明明有图形界面为什么你们搞技术的人都喜欢敲命令鼠标点一点不好吗我一般会反问一句如果你要批量把 100 个文件改名或者要在几千行日志里找出报错原因鼠标要点几下图形界面能帮你记住上一次的操作步骤吗这个问题的答案其实就是 Linux 命令存在的意义命令是操作系统的“母语”图形界面只是翻译。掌握了常用命令你不是在用某个具体的桌面软件操作 Linux而是在直接和系统对话。这篇笔记是给我自己带的新人看的也是写给所有刚接触 Linux 的朋友。我不打算把几百条命令罗列一遍——那叫字典不叫学习笔记。我挑选的是日常工作和排障中 80% 场景会用到的高频命令配合场景解释“为什么这样用”让你理解着记而不是死记硬背。1. 为什么我劝你认真学一遍命令行图形界面和终端的本质区别先聊一个反直觉的事实Linux 的图形界面从来不是必需的。服务器可以不装桌面照样跑网站、数据库、容器。但不管服务器还是桌面终端永远在。原因很简单——图形界面是人机交互的一种方式而命令行是系统本身的工作方式。1.1 图形界面和命令行各自擅长什么图形界面的优势是“发现”——你看得到菜单、按钮、窗口凭眼睛就能猜到能做什么。但它有个致命的弱点不可重复。你用鼠标完成一连串操作后如果想对另一个文件做同样的事只能再点一遍如果想教别人做只能在视频里一步步演示。命令行的优势是“表达”——一条命令就是一段准确的工作描述。同样的操作写成命令就是几行字发给你你就能复制粘贴跑起来结果一模一样。尤其是批量操作和自动化场景图形界面基本无能为力。我见过不少新人刚开始抵触命令觉得记不住。但一旦开始用命令做工作很快就回不去了因为效率差距实在太大。1.2 命令的可组合性才是真正的杀手锏图形界面的另一个瓶颈在于每一个操作都是独立的你很难把“列出文件”和“筛选文件”和“统计数量”这三件事串成一条流水线。但命令可以。把三条命令用管道|串起来就是一个数据处理工坊。这一点我在后面讲管道的时候会展开这里先记住一个结论单条命令解决单点问题管道组合解决系统问题。这也是为什么命令行在运维、开发、数据处理领域无法被替代的根源。1.3 放下恐惧命令不是靠背下来的很多人一看到命令的英文全称就头大——ls为什么不是listcp为什么不是copy其实命令本身就是英文单词的缩写看多了自然就记住了。而且真正的学习路径不是“背命令”而是“用命令”。每遇到一个实际需求就去查一个命令用两次就记住了。这篇笔记我会按照一个刚装好 Linux 系统的新人从开机到日常使用、再到排查问题的顺序来组织。你在自己的机器上一路敲下来会比盯着一屏一屏的命令列表效果强很多倍。2. 目录导航与文件查看每天敲得最多的几条命令在 Linux 的世界里一切都是文件普通文件、目录、设备、甚至网络连接都被抽象成了文件。所以学会在文件系统里“走路”和“看路”是第一个必须攻克的点。2.1 你此刻在哪pwd 与路径概念刚打开终端光标前面是一个$符前面可能还有用户名和机器名。如果你是懵的不知道当前在哪个目录先敲pwdpwd是 print working directory 的缩写作用就是告诉你当前目录的绝对路径。这是我在教新人时要求他们养成习惯的第一个动作不知道自己在哪就先 pwd 一下。顺带提一下路径的两种写法。以/开头的是绝对路径比如/home/user/docs从根目录算起不带/的是相对路径比如docs从当前目录算起。有一个常用符号.代表当前目录..代表上一级目录~代表当前用户的家目录。2.2 看目录里有什么ls 的常用组合ls全称 list列出目录内容。裸敲一个ls只能看到文件名信息量有限。我 99% 的情况下用的是这两个组合ls -l ls -la-l是长格式展示权限、属主、大小、修改时间-a是 all把隐藏文件以.开头的文件也显示出来。我建议新人直接养成敲ls -la的习惯。因为很多配置文件都是隐藏文件比如家目录下的.bashrc、.ssh你不加-a根本看不见以为文件“丢了”。2.3 切换目录cd 的常见用法cd是 change directory切换目录。它有一个非常实用的参数cd - # 回到上一次所在的目录这个cd -我刚工作时经常用——在两个项目目录之间来回切换不用打一长串路径按两个键就搞定在深层次目录里尤其爽。还有一个容易踩的坑绝对路径和相对路径的写法决定了你最终到哪。比如你在/home/user/project执行cd /etc会跳到/etc执行cd etc则会在当前目录下找etc子目录大概率提示“No such file or directory”。新手对这一点要格外留意。2.4 看文件内容cat、less、head、tail 四兄弟新手最容易混淆的就是查看文件的命令。我这里画个清晰的边界命令适用场景典型用法cat文件比较小一次性全看cat /etc/hostnameless文件长需要翻页、搜索less /var/log/sysloghead只看文件开头若干行head -20 /var/log/nginx/error.logtail只看文件末尾若干行tail -50 /var/log/nginx/error.log其中tail有一个杀手级用法是所有运维排查日志时离不开的tail -f /var/log/nginx/access.log-f是 follow意思是文件有新内容写入时终端会自动滚动显示。调试程序、看访问日志、跟踪报错这个命令一直挂着就行相当于给日志文件装了一个实时直播窗口。想退出就按Ctrl C。2.5 按关键字找内容grep如果说上面几个命令是“看整本书”grep就是“只找带某些字的句子”。它是全球运维和开发使用频率最高的命令之一。grep error /var/log/syslog # 在文件中搜索含 error 的行 grep -i error /var/log/syslog # 忽略大小写 grep -r localhost /etc/nginx/ # 递归搜索目录下所有文件 grep -n error /var/log/syslog # 显示行号新手常见疑问为什么搜索结果里有好几行但不知道在哪个位置加个-n就好。另一种场景是想过滤掉某些行用grep -v比如grep -v ^# /etc/nginx/nginx.conf可以跳过注释行专心看实际配置。我个人的习惯是凡是查看超过 20 行的文件内容不直接cat而是先grep搜关键字再配合head或tail缩小范围。直接cat一个 5 万行的日志终端刷到起飞眼睛根本抓不住重点。3. 文件与目录管理从复制移动到批量查找看完文件之后下一个高频场景是创建、复制、移动、删除。这部分命令不多但每一个都有“知识点”和“坑”。3.1 创建文件与目录touch 和 mkdirtouch test.txt # 创建空文件或更新已有文件的时间戳 mkdir newdir # 创建目录 mkdir -p a/b/c # 递归创建多级目录touch最容易被忽略的价值是更新时间戳——某些软件编译时依赖时间戳判断文件是否变更touch一下就能触发重新编译。mkdir -p我几乎必用因为直接敲mkdir a/b/c时如果a或a/b不存在会报错加了-p它会自动把中间目录一并创建。3.2 复制、移动、重命名cp 和 mvcp file1 file2 # 复制文件 cp -r dir1 dir2 # 递归复制目录 mv file1 file2 # 移动也用于重命名 mv -i file1 file2 # 交互式目标存在时先询问这里有几个高频错误场景我几乎每周都能在身边人身上看到第一复制目录必须加-r否则报错omitting directory。因为cp默认只处理文件-r让它递归地把目录里的所有内容复制过去。第二mv是移动文件但在同一目录下把文件改成另一个名字其实也是mv干的活。比如mv oldname.conf newname.conf效果就是重命名。第三批量操作时最好带上-i让系统在覆盖前问一句。尤其是在生产环境反复确认不是胆小是职业素养。不加-i直接把重要配置覆盖了这种事故我见过不止一次。3.3 删除文件rm 以及为什么会“删库”rm test.txt # 删除文件 rm -r dir # 递归删除目录 rm -f test.txt # 强制删除不提示rm -rf可能是 Linux 命令里“传说度”最高的组合也是段子素材的常客。rm -rf /会让系统把根目录整个删掉——这没开玩笑如果权限够系统真的会毁掉。我的经验是两条一新手不要在重要机器上敲rm安装一个 trash-cli 之类的回收站工具把删除变成放入回收站给手误留一条后悔路。服务器上虽然不能依赖回收站但用mv把文件移到/tmp代替删除也是常见的安全做法。二删除前先ls确认。比如要删/opt/app/logs/下的东西先ls /opt/app/logs/看清楚里面是什么再删。这个习惯一旦养成能避免 99% 的误删。命令本身没有善恶重要的是使用者的习惯。3.4 查找文件find 的常用套路文件一多想找某个文件就麻烦了。图形界面的搜索慢且不说还经常搜不到。find是 Linux 下最正统的查找工具find /home -name *.log # 查找 /home 下所有 .log 文件 find / -size 500M # 查找大于 500M 的文件 find . -name *.conf -mtime -7 # 查找当前目录下 7 天内修改过的 .conf 文件find还可以和-exec组合对所有搜到的结果执行某条命令。比如找出所有.tmp文件并删除find /tmp -name *.tmp -exec rm {} \;这里的{}是“搜到的每个文件”\;是命令结束符号。不过find -exec的写法对新手不够友好容易在分号转义上出错。我的建议是先find把结果确认一遍再用xargs批量处理或者直接配合管道交给后面的命令处理。3.5 软链接和硬链接ln 到底连的是什么ln创建链接文件类似于 Windows 里的快捷方式但不完全一样。ln -s /opt/app/current /home/user/app_link # 创建软链接 ln /opt/data/file.txt /home/user/hard_link # 创建硬链接软链接就是一个指向原文件路径的“指针”路径关系清晰原文件删了链接就失效了。硬链接则是多个文件名指向同一份数据任何一个名字删掉数据还在只有所有硬链接都删完了数据才真正消失。这个对比我没有展开讲内核 inode 的细节但你要记住一个实用结论日常用的绝大部分场景选软链接-s。比如部署应用时把版本目录/opt/app/releases/v1.2.3软链到/opt/app/current升级的时候只需改链接指向服务不用停这是运维里很常见的操作。4. 管道的魔法把多个命令串成流水线前面说命令可以组合现在讲组装方式——管道和重定向。这可能是从入门到进阶最重要的一道分水岭。4.1 管道|把前一个命令的输出变成后一个命令的输入管道符号|做的事情很朴素把左边命令的输出结果像水流一样“灌”给右边命令作为输入。两边可以任意组合直到得到你想要的结果。我举一个最经典的例子。想统计/etc目录下有多少个.conf文件ls -l /etc | grep .conf | wc -l这条命令拆开看ls -l /etc列出文件grep .conf筛出带.conf的行wc -l统计行数。三步操作一条命令一气呵成。这就是命令行的魅力——图形界面里做同样的统计你至少要打开目录、筛选类型、查看属性层层点进去慢且麻烦。4.2 重定向把命令输出告诉文件重定向是把命令的输出“写”到某个地方而不是打印到屏幕。常见用法echo hello test.txt # 覆盖写入 echo world test.txt # 追加写入 command /dev/null 21 # 丢弃所有输出不显示也不保存会覆盖文件原有内容是追加到末尾。我特别提示一下如果不想丢失原文件内容一定要用。一个很现实的场景你写了自动化脚本每天往日志文件里追加日志用会把昨天的日志全部清空——这种事故特别典型。21是什么意思在 Linux 里标准输出屏幕显示是 1错误输出是 2。21意思是把错误输出也转到标准输出这样日志能一起写进文件。跑脚本、做定时任务时这招能把报错信息完整记录下来排障的时候价值巨大。4.3 文本处理三件套sort、uniq、cut有了管道再配合几个文本处理命令你就拥有了初级数据处理能力。我给新人必推的组合就是 sort、uniq、cut。sort按字典序或数值排序。uniq去重注意uniq只能去除相邻重复行所以一般先sort再uniq。cut按分隔符截取字段。组合起来可以实现“从日志里统计出现最多的 IP”这类高频需求cat /var/log/nginx/access.log | awk {print $1} | sort | uniq -c | sort -nr | head -10这条命令稍微复杂拆分理解一下awk {print $1}默认按空格分割取出每行第一个字段即 IPsort把 IP 排序让相同 IP 相邻uniq -c统计每个 IP 出现的次数sort -nr按次数从大到小排序head -10只看前 10 名。就这么一条命令你就能从几十万行日志里快速找到“谁在刷你的网站”。虽然这里有awk参与但核心思想是管道接力。我建议新手先把它拆成单个命令逐步去看输出理解了之后整个人对命令行的理解会上一个台阶。4.4 管道思维遇到复杂问题先拆步骤很多新人卡在管道上是因为习惯了图形界面的“单步操作”思维不适应“流水线”。我在带新人时有一个练习方式拿到一个新需求先不要敲命令拿笔在纸上拆步骤。比如“统计日志里今天有多少条 error”拆成找出日志文件find或直接定位路径过滤含 error 的行grep统计行数wc -l拆完了再用管道串起来自然就能写出来。把大问题拆成小命令再通过管道组装这是命令行思维的核心比记住任何一条具体命令都重要。5. 权限与用户新手最容易栽跟头的地方“Permission denied”可能是 Linux 世界里劝退新人的第一句话。遇到权限问题不能只会sudo你得明白权限机制到底在保护什么。5.1 一切皆文件权限挂在文件上每个文件都有自己的属主user、属组group和其他人others每一类人都可以设置读r、写w、执行x三种权限。用ls -l看到的-rw-r--r--就是权限位的编码。我来拆解-rw-r--r--的含义位置含义第 1 位文件类型-普通文件d目录l软链接第 2-4 位属主权限u第 5-7 位属组权限g第 8-10 位其他人权限o每三位中rwx分别代表读、写、执行没有对应权限就是-。目录的x权限尤其容易误解——对目录而言x不是“执行”而是“能否进入这个目录”。所以一个目录只有r没有x你能列出目录内容但进不去很绕吧但这就是真实系统的行为。5.2 改权限chmod 的两种记法chmod 755 script.sh chmod ux script.sh755是数字记法每个权限位对应一个数字读是 4写是 2执行是 1。三者相加得到 0-7。7 421 是读写执行5 41 是读和执行。755就是属主全部权限属组和其他人只有读和执行。ux是符号记法意思是给属主u增加执行x权限。对单个文件我更喜欢符号记法语义明确批量处理时数字记法更整齐。新手最常见的困惑是777是啥就是所有人可读可写可执行。我劝你少用——尤其是配置文件和脚本。777等于放弃了所有权限控制在服务器上是安全大忌。合理做法是属主给够权限其他人尽量只读。5.3 换属主chown 和 chgrpsudo chown user:group file.txtchown修改文件属主和属组。user:group一个冒号同时搞定。常见的场景是把 web 目录属主改成运行网站的用户比如把/var/www/html的属主改成www-datasudo chown -R www-data:www-data /var/www/html-R是递归把目录下所有文件一并改掉。改了属主才能让服务进程正常读写自己的目录。忘了这一步配好的网站在刷新时权限报错是排障中经常遇到的“隐形坑”。5.4 为什么不能总用 rootsudo 的使用边界很多新手一看权限报错第一反应是sudo加在所有命令前。这确实能解决眼前问题但风险不小。root 用户拥有系统一切权限输错一条命令就可能毁掉系统配置。我的建议是日常操作用普通用户需要管理权限时用sudo command临时提升不要sudo su -长期切到 root 干活每次sudo会留下审计记录这在追溯问题时也很重要。另外推荐一个安全边界sudo以当前用户身份运行sudo -s或sudo -i才是切换到 root 环境。如果你写脚本、装软件时发现路径不对先看看是不是这两个参数用混了。5.5 新用户与用户组useradd、passwd、usermod多用户管理是 Linux 的看家本领常用命令也就几条sudo useradd -m -s /bin/bash newuser # 创建用户并创建家目录 sudo passwd newuser # 设置/修改密码 sudo usermod -a -G sudo newuser # 把新用户加入 sudo 组-m让系统自动创建/home/newuser家目录-s /bin/bash指定登录 shell。不指定-m建出来的用户没家目录在很多软件环境下会出怪问题。新用户默认不在sudo组执行管理命令会被拒绝所以要用usermod -a -G sudo追加到管理组。-a是 append不完全覆盖用户原有的组。6. 磁盘、内存与网络几个保命的排查命令命令行的价值在“系统出问题时”体现得最淋漓尽致。这里我挑几个高频排障命令它们不一定天天用但出了问题它们是救命稻草。6.1 看磁盘空间df 和 dudf -h # 查看各分区磁盘使用情况 du -sh /opt # 查看某个目录占用空间总量df -h人类可读输出也是以 G、M 为单位显示适合一眼看出磁盘还剩多少。我处理过很多“网站突然打不开”的工单最后原因都是磁盘满了——所以系统异常时先df -h这是铁律。du -sh用于排查“哪个目录占了最多空间”。先df -h找出满的分区再用du -sh /*逐层排查基本能快速定位到目标。6.2 看内存与负载free 和 topfree -h # 查看内存使用 top # 动态查看进程和系统负载free -h的 available 是真正可用的内存数别只看 free。Linux 的文件缓存会占用大量内存但它是可回收的所以 app 显示内存高不代表系统真的缺内存。top是动态界面默认按 CPU 使用率排序进程。按q退出按1看每个 CPU 核的使用情况。如果你觉得top的信息太多可以用top -o %MEM快速按内存排序找出吃内存最狠的进程。6.3 找进程ps 与匹配ps -ef | grep nginx # 查看 nginx 相关进程 ps aux | sort -rk 4 | head -5 # 按内存占用排序查看前 5ps -ef是全格式列出所有进程配合grep过滤。Newer versions haveps auxtoo两个都行。重要的是理解输出里的 PID——后面要终止进程时就是要找这个编号。6.4 杀进程kill 的温和与粗暴kill PID # 默认发送 TERM 信号请求进程正常退出 kill -9 PID # 强制杀死不响应清理逻辑kill -9是最后的强制手段会直接结束进程不给保存和清理的机会。能用普通kill就先普通 kill确实没反应再考虑-9。杀完进程后记得用ps -ef | grep确认进程真的没了——有些守护进程会自动拉起只杀一次是没用的。6.5 看端口监听ssss -tlnpss是 socket statistics查看端口监听情况。-tTCP 协议-l只显示监听中的端口-n以数字显示端口号-p显示所属进程。排查“端口被占用”“服务为什么起不来”这类问题这个命令是首选。对比一下老的netstat -tlnpss性能更好现代系统里基本都是它了。看端口被谁占了输出里会带上进程名和 PID。6.6 网络连通性ping 和 curlping -c 4 baidu.com # 测试网络连通性-c 限制次数 curl -I https://example.com # 查看 HTTP 响应头ping测试网络通不通curl -I测试网站返回的 HTTP 状态码。curl是排障神器但新手容易混淆-I只拿响应头和-v显示详细交互过程。排查接口问题建议curl -v它会打出完整的请求和响应全过程定位是 DNS 问题、TLS 问题还是后端错误一目了然。7. 打包压缩与文件传输处理包文件时踩过的坑折腾 Linux 离不开打包压缩。.tar.gz、.zip、.rar这些格式你是不是也遇到过一个解压就乱码的瞬间7.1 tar 打包压缩与解压tar -czvf archive.tar.gz /path/to/dir # 打包并压缩 tar -xzvf archive.tar.gz # 解压到当前目录 tar -tzvf archive.tar.gz # 查看压缩包内容列表选项拆解c创建打包文件x解压t列出内容z通过 gzip 压缩/解压v显示过程f指定文件名f必须放最后后面跟文件名。最常用的就是-czvf打包和-xzvf解压。我个人还有个习惯是解压前用tar -tzvf先看看包内结构避免某些粗制滥造的包解压出一堆文件把当前目录搞得乱七八糟。7.2 zip 解压乱码的问题Windows 上压的 zip 文件拿到 Linux 上解压经常出现中文文件名乱码。原因是编码不一样Windows 用 GBK/GB18030而 Linux 默认 UTF-8。这个我真是踩过无数次。解决思路有三种一是用unzip -O GBK指定编码unzip -O GBK archive.zip注意-O参数是 unzip 6.0 以上的版本才支持。如果你的发行版用的是较老的 unzip可能需要自己编译新版或者试试 p7zip。二是用 7z 替代7z x archive.zipp7zip 对中文编码的处理通常比 unzip 好一些但也不是百分百可靠。三是用 Python 的脚本处理这是最通用但稍微麻烦的方法。我的态度是如果一个 zip 在 Linux 下解压乱码先unzip -O GBK试试如果还不行线上服务里的文件尽量用 tar 重新打包分发——毕竟源头上统一格式比事后纠错舒服得多。7.3 远程传文件scp 与 rsync从一个服务器把文件拉到本地或者推到远端最常用的两个命令是scp和rsyncscp userhost:/path/file.txt /local/path/ # 从远端拉文件 scp /local/path/file.txt userhost:/path/ # 推文件到远端 rsync -av --progress /local/path userhost:/path/ # 增量同步目录scp简单直接适合一次性传输。rsync支持增量同步只传变化的部分适合大目录的同步和备份。加上-a归档模式保留权限和时间戳、-v显示过程、--progress显示进度是标准的打包组合。日常办公场景如果你在图形界面环境用文件管理器连接 SFTP 拖动文件其实就够了。但一旦涉及服务器与服务器之间同步、自动化脚本备份scp和rsync就是必须掌握的基本功。8. 学习命令的实用方法怎么把这次笔记消化成自己的东西笔记看到这里如果你只是“看完了”其实意义不大。学命令重点在于练。我说说我自己带新人时用的几条具体方法。8.1 三张纸条练习法我在给新人培训时会让他们准备三张纸条第一张写“我要做什么”第二张写“涉及哪个目录或文件”第三张写“用什么命令”。每接一个新需求先在纸条上理清这三行再敲命令。比如我要统计 Nginx 日志里今天有多少个 404 请求。做什么统计次数涉及文件/var/log/nginx/access.log命令思路grep 404 access.log | wc -l看起来很笨拙但对新人非常有效。这个练习的价值在于把“需求”和“命令选项”对应起来一旦建立了这个对应关系命令很快就不再是背诵题了。8.2 常用命令速查表贴在终端旁边我自己的做法是准备一个cheatsheet.txt放在家目录下把最常用的命令按场景列出来忘了就cat cheatsheet.txt。这比去网页搜索快得多也更有针对性。你可以建一个类似的文件按本文的分类来组织导航查看pwdls -lacdcatlessheadtailgrep文件管理touchmkdircpmvrmfindln文本处理sortuniqcutwcawk权限用户chmodchownuseraddpasswdsudo排查诊断df -hdu -shfree -htoppskillsspingcurl压缩传输tarunzipscprsync每用一个命令就在对应分类下面加一条具体参数和“当时是为了解决什么问题”。一个月后这份文件就是你个人的 Linux 命令实战手册比任何公开的“命令大全”都有价值。8.3 用man和--help自己解决问题我遇到过不少新人拿到问题第一反应是问人而不是自己查。其实命令自身就自带了说明书任何命令加--help都能看到简要帮助man 命令名则是完整的手册。比如man tar会告诉你所有选项的含义和用法示例。虽然英文手册对新人有门槛但坚持读查词两三个月后你的英文文档阅读能力会顺带提升——这在技术圈是基础中的基础。8.4 为“学习笔记”系列做扩展规划这篇作为“Linux 常用命令学习笔记”的第一部分我主要覆盖了入门的高频场景。后面如果继续写我会按这几个方向深入文本处理三剑客的细节grep的正则、awk的字段处理、sed的流编辑系统服务与进程管理systemd 常用命令systemctl、journalctl 日志查询网络排查工具链从ss、traceroute、tcpdump到curl的完整链路用户权限进阶ACL 访问控制、sudoers 配置、文件特殊权限位。这些内容适合对基础命令已经不虚的人进一步深入。到那时你会发现Linux 命令的“组合拳”能解决的问题远比图形界面让你以为的要多得多。9. 个人体会命令行的门槛不在记忆而在习惯带过的人多了我越来越确定一件事新手觉得 Linux 命令难不是记不住选项而是不习惯“通过命令来解决问题”的思考方式。图形界面把一切包装成“看得见的操作”而命令行要求你在脑子里提前构建一个“解决问题的流水线”。我自己的转折点是在工作后第一年遇到一台没有图形界面的服务器网站访问慢磁盘快满了。那台机器上我只有终端只能用命令排查。从df -h看到磁盘占用 98%到du -sh /var/log查到日志目录异常膨胀再到find /var/log -name *.log -mtime 30 -delete清理旧日志从定位到解决不到十分钟。那一次之后我才彻底相信命令行的效率优势是图形界面根本无法比的。所以这篇笔记与其说是一份知识点清单不如说是一份“如何开始用命令思考”的入门地图。把这些命令在自己机器上跑一遍把每一个“解释为什么”的部分在脑子里过一遍再配上自己的 cheatsheet你已经能处理 Linux 环境下绝大多数日常场景了。接下来要做的就是在真实问题中一遍一遍地使用它们直到这些命令成为你的肌肉记忆。我在教学时还有一个屡试不爽的收尾建议把所有命令输入两遍以上不是背是让手指记住。因为手工敲进去的命令跟你盯着文档复制粘贴在大脑里留下的痕迹深得多。哪怕敲错了、报错了这个过程本身也是在积累直觉——下次再见到同一个报错你会想起“哦原来当年漏了个参数”。说到底Shell 是一个技能不是一个知识体系。技能只能用练习来掌握看再多的命令大全也代替不了亲手敲一次。这就是为什么我始终建议把它当成一个日常工具而不是一门需要“学完”的课程。
返回列表