期末复习最怕的不是内容多,而是明明学过的东西一到上机就手抖。Linux 这门课尤其典型:课堂上听命令觉得“这不就是单词吗”,真坐到电脑前敲起来,不是权限不够,就是路径写错,再不然配置文件敲完直接起不来服务。这篇笔记不是教材的压缩版,我把自己从学生时代到后来做运维、带新人时常用的复习框架整理在一起,结合这些年踩过的坑,帮你把零散的知识点归拢成几条清晰的主线。
这篇内容适合三类人看:一是马上要考 Linux 期末、正在疯狂刷题的在校生;二是准备运维或嵌入式方向面试、需要快速梳理基础的转行者;三是工作中偶尔要用 Linux、但一直没系统整理过命令体系的同学。我会把高频考点、实操步骤和排错经验放在一起讲,尽量让读完的人能直接坐到终端前动手复现,而不是光记住了几个命令的拼写。
1. 期末复习的正确打开方式
1.1 先把考点范围划出来
不同学校的 Linux 课程侧重点差异很大,有的偏命令操作,有的偏系统管理,还有的会掺杂 Shell 脚本和网络服务配置。我见过太多人复习时从第一章开始狂背,结果背到用户管理就放弃了,因为前几章的命令太多太碎。
正确的做法是先问自己三个问题:这门课的实验课占了多大比例?老师期末是笔试还是机试,或者两者都有?重点章节是不是集中在进程管理、用户权限和网络配置这几块?
以我观察到的历年情况看,高频考点基本固定在四个区域:文件与目录操作、用户与权限管理、进程与系统服务、网络基础配置。这四个区域占了期末卷面至少六成,剩下的是 Shell 编程基础、磁盘管理、软件包管理和系统安装流程。
复习顺序建议按“命令基础 → 权限模型 → 进程服务 → 网络排障 → 综合实战”推进。前四个是点,最后一个是把点串成线。很多同学卡在综合题上,不是不会单个命令,而是不知道一条命令报错之后下一步该看什么,这正是缺乏整体框架的表现。
1.2 一台虚拟机比什么都管用
期末复习最忌讳“只看不练”。命令这种东西,眼睛看会了不算会,手指敲会了才是真会。我建议不管笔试还是机试,都给自己留一台 Linux 虚拟机。
常用方案是 VirtualBox 或 VMware Workstation,装一个 Ubuntu Server 或者 CentOS Stream。为何推荐 Server 版而不是桌面版?因为期末考的大多数操作都在终端里完成,桌面环境反而容易让你分心,而且 Server 版资源占用低,老旧笔记本也能流畅跑。
虚拟机装好之后,把网络模式改成桥接或 NAT,确保能上网,然后用 apt 或 yum 装几个常用工具:vim、curl、wget、tree、net-tools、lsof、iperf3。装工具这个动作本身就是一次很好的练习,它能让你快速熟悉软件包管理命令,而且后面排查网络问题时这些工具都能用得上。
提示:如果电脑配置一般,给虚拟机分配 2 核 CPU 和 2GB 内存基本够用。内存别给太小,否则编译程序或跑多个服务时会卡到怀疑人生。
2. 高频必考点:文件与目录操作
2.1 最常用的十来个命令要练成肌肉记忆
Linux 入门的第一道坎就是文件操作。ls、cd、pwd、cp、mv、rm、mkdir、touch、cat、less、head、tail、find、grep,这些命令看上去简单,但组合起来能解决大多数实际场景。
我复习时会把它们按功能分成三组:
第一组是“查看类”:ls 查看目录内容,pwd 确认当前位置,cat/less/head/tail 查看文件内容。其中 tail -f 可以实时跟踪日志,排错时特别有用,比如看 Tomcat 启动日志、Nginx 访问日志,都需要它。
第二组是“操作类”:cp 复制、mv 移动或改名、rm 删除、mkdir 建目录、touch 建空文件。这里有几个保护性习惯必须养成:rm 之前先确认路径,尽量不要直接 rm -rf,实在要用也要先 ls 看清楚目标。我见过有人把rm -rf /usr打成rm -rf /usr /,多了一个空格,整个系统直接报废。
第三组是“查找类”:find 按条件找文件,grep 在文件内容里过滤关键字。find 的常用组合是find /path -name "*.log" -type f,grep 的常用组合是grep -r "error" /var/log。
这三组命令如果能在 30 秒内流畅敲出来,文件操作部分基本过关。别觉得简单,机试考试很多人的时间都浪费在“想不起来命令怎么写”上,而不是题目本身有多难。
2.2 管道、重定向与输入输出
管道和重定向是 Linux 的“连接件”,也是期末必考的难点。简单说,重定向是把标准输入输出指向文件,管道是把一个命令的输出接到另一个命令的输入。
三个常见符号要分清楚:>覆盖写,>>追加写,2>重定向错误输出。还有一个细节经常考:> file 2>&1表示把标准输出和错误输出都写到同一个文件,顺序不能写反,否则错误信息还是会打到屏幕上。
管道符|是过滤和统计的利器。经典场景是统计日志里 error 出现的次数:cat app.log | grep -c "error"。还有组合场景:ps -ef | grep nginx | grep -v grep,这条命令在排查进程时几乎天天用。最后的grep -v grep是为了过滤掉查询本身产生的进程行,这个细节很多新手会漏掉。
期末笔试常考“请解释ls -l | sort -k5 -n | tail -5的功能”,其实就是查看目录下按文件大小排序的前五个最大文件。这种题考察的不是单个命令,而是你对命令拼接的理解力。
2.3 解压乱码与编码问题
“linux 解压文件乱码”是搜索热词,也是期末机试很容易翻车的地方。乱码的根源通常不是命令错了,而是压缩包的编码格式与当前系统不一致。
中文 Windows 下压缩的 zip 文件,文件名常常是 GBK 编码,而 Linux 默认使用 UTF-8。直接 unzip 解压,中文文件名就会变成一堆乱码。解决办法有两个:
第一种是用unzip -O GBK file.zip,指定解压时的字符编码,简单有效。不过这个参数不是所有版本的 unzip 都支持,较老的发行版上会报错。
第二种是用python3 -m zipfile -e file.zip ./配合编码转换,或者安装unar、7zip这类对编码兼容更好的工具。7z x file.zip在处理中文文件名时表现通常比 unzip 好,前提是装了 p7zip-full 包。
远程传输文件出现乱码,还要检查终端设置。我遇到过不少同学在 Xshell 或 SecureCRT 里看中文乱码,实际文件本身没问题,是终端的编码没改成 UTF-8。复习时养成好习惯:连接服务器之前先把终端编码和传输协议确认好,能省掉不少排查时间。
3. 用户、权限与安全模型
3.1 三类权限和 chmod 的三种表达方式
权限管理是 Linux 课程的重头戏,也是面试官最爱问的点。Linux 的权限模型可以概括为“三类对象,三种权限”:属主 u、属组 g、其他用户 o,读 r、写 w、执行 x。
查看权限用ls -l,第一列就是权限位,例如-rwxr-xr--。第一位是文件类型,-代表普通文件,d代表目录,l代表符号链接。权限位共九位,三个一组,顺序永远是 rwx,缺什么用什么补。
修改权限有两种表达方式:
符号方式:chmod u+x script.sh、chmod g-w file.txt、chmod o+r readme,适合只改动某个对象的某个权限时用。
数字方式:r=4、w=2、x=1。chmod 755的含义是属主 7(rwx)、属组 5(r-x)、其他人 5(r-x)。这个换算规则笔试几乎必考,记住 4+2+1 的组合即可。
目录的执行权限经常被忽略。读权限只是能列出文件名,要能进入目录必须要有执行权限。所以chmod 644 dir的目录虽然能 ls,但cd进去会提示权限不足,这个细节在机试里很容易踩。
3.2 用户和用户组实操
用户管理的考点集中在 useradd、usermod、userdel、passwd 和 groupadd 这几个命令上。
创建用户的基本姿势是useradd -m -s /bin/bash tom,-m表示创建家目录,-s指定登录 Shell。如果不加-m,新用户可能连家目录都没有,登录后直接落在根目录,很多新手会在这里困惑。
给用户设密码用passwd tom,交互式输入两次。要注意的是,useradd并不会直接要求设置密码,新用户创建后处于锁定状态,必须先设密码才能登录。
删除用户分两种情况:userdel tom只删用户,userdel -r tom连家目录和邮件池一起删。机试时问“如何彻底删除用户”,标准答案就是带-r。
添加用户到组用usermod -aG sudo tom,-aG是追加,-G是直接覆盖。覆盖的风险在于会重置用户原有的附属组列表,可能导致用户失去某些权限。这个坑我在生产环境里踩过,加 docker 组时把用户从 wheel 组里挤掉了,结果是 sudo 直接失效。
3.3 特殊权限与 sudo 机制
特殊权限位不是每次考试都考,但考出来往往是拉分题。
setuid(suid)用数字 4 表示,典型场景是/usr/bin/passwd文件,它使普通用户执行该程序时临时拥有属主的权限,从而能修改 /etc/shadow。查看时表现为属主执行权限位变成s。
setgid(sgid)用数字 2 表示,作用于目录时,新建文件的属组会自动继承目录的属组,多人在同一个项目目录协作时经常用到。
sticky bit 用数字 1 表示,最经典的例子是 /tmp,所有用户都能在里面建文件,但普通用户只能删除自己创建的文件,别人的文件删不掉。表现为其他人执行权限位变成t。
sudo 机制要理解的是 /etc/sudoers 文件。给用户提权不是简单把用户加到 root 组,标准做法是用visudo编辑,加入tom ALL=(ALL:ALL) ALL。用 visudo 而不是直接 vim,是因为保存时会做语法检查,可以防止配错导致整个 sudo 不可用。
注意:期末机试时如果发现自己敲了 sudo 却提示“command not found”,先别慌,检查 PATH 环境变量。sudo 默认环境下 PATH 可能不包含当前用户自定义的目录,命令不是不存在,而是路径没找到。
4. 系统初始化、进程与服务管理
4.1 系统启动流程与运行级别
理解启动流程并不是背诵型的考点,它能帮你解释很多“为什么”。一台 Linux 机器从按下电源到出现登录界面,大致经历:BIOS/UEFI 自检 → 引导加载程序 GRUB → 内核加载 → systemd 初始化 → 启动目标服务。
内核被加载后,init 进程(现在主流发行版是 systemd)会接管系统初始化。systemd 用 target 替代了传统 SysVinit 的运行级别,比如multi-user.target对应多用户文本模式,graphical.target对应图形界面模式。
查看默认启动目标用systemctl get-default,修改用set-default。比如服务器不需要图形界面,执行systemctl set-default multi-user.target就能加快开机速度,减少资源占用。
笔试常见题是“如何查看开机自启服务”,答案就是systemctl list-unit-files --type=service,看每一行的 enabled 或 disabled 状态。禁用自启用一个服务,分别对应disable和enable,注意别跟停止服务混淆。
4.2 systemd 服务管理与开机自启
systemd 是现在所有主流发行版的默认服务管理器,它的核心操作就三件事:查看状态、启动停止、设置自启。
状态查看是systemctl status nginx,输出里除了运行状态,还会显示该服务最近的日志,排错第一步就是看它。
启动停止用systemctl start/stop/restart nginx,设置自启用systemctl enable nginx。注意enable只是设置开机自启,并不会立即启动服务,要同时启用并启动可以写systemctl enable --now nginx。
写自定义系统服务也是常考内容。在 /etc/systemd/system/ 下创建一个xx.service文件,内容一般长这样:
[Unit] Description=my test service After=network.target [Service] Type=simple ExecStart=/usr/bin/python3 /opt/test.py Restart=on-failure [Install] WantedBy=multi-user.target写完执行systemctl daemon-reload让它加载新配置,再 start 测试。这里有一个容易漏掉的细节:ExecStart 里的路径必须是绝对路径,脚本本身要有执行权限,否则 start 之后会自动退出,代码是 203 或 200。
4.3 进程查看与管理
进程相关命令是面试高频区,期末也喜欢出。核心命令是 ps、top、kill、jobs、nohup。
ps 最常用的组合是ps -ef和ps aux,两者输出内容基本一致,只是格式略有差异。关注点是 PID(进程号)、PPID(父进程号)和 TIME(累计占用 CPU 时间)。
top 是动态查看进程资源占用,按 P 按 CPU 排序,按 M 按内存排序。面试题常问“如何找出占用内存最高的进程”,标准操作是top后按 M,或者用ps aux --sort=-%mem | head -10。
kill 并不是只能杀进程的。kill -15是请求进程自己退出,kill -9是强制杀掉。正确姿势是先用 -15,观察一会儿,实在没反应再 -9。上来就 -9 相当于直接拉电闸,服务可能来不及保存状态就挂了。
后台运行的场景用 nohup 和&组合:nohup command > log.txt 2>&1 &。这条命令的意思是“用 nohup 让进程忽略挂断信号,日志写到 log.txt,放到后台运行”。注意末尾的&不能漏,漏了就还占着终端。
5. 网络配置与常用排障
5.1 查看 IP、路由与端口
网络配置在 Linux 期末里占比不小,而且和前面学的命令关系紧密。首先要掌握查看网络状态的命令:ip addr 查看 IP 地址,ip route 查看路由表,ss -tlnp 查看监听端口和对应进程。
传统教材会先教 ifconfig、netstat、route,但新版发行版默认不装 net-tools 了,所以我建议直接练 ip 和 ss。两者功能对应关系是:ip addr 对应 ifconfig,ss -tlnp 对应 netstat -tlnp。考试时如果 ifconfig 提示 command not found,用 ip addr 一样能答题。
查看端口监听很重要。排查“服务起没起来”时,执行ss -tlnp | grep 8080,有输出说明端口在监听,没输出说明服务没监听或者绑定到了别的地址。如果服务监听在 127.0.0.1 而不是 0.0.0.0,外部访问会不通,这个问题经常出现在配置了 localhost 的开发环境里。
路由方面,会用ip route add default via 192.168.1.1加默认路由即可。临时修改网络参数后,重启网卡用systemctl restart network 或 nmcli connection reload,具体看发行版,但思路是一致的。
5.2 DNS 配置的几个经典坑
“linux 中配置 dns 出现的问题”是热词,也是排错题的常客。DNS 配置文件是 /etc/resolv.conf,形式如下:
nameserver 223.5.5.5 nameserver 8.8.8.8很多同学改了 resolv.conf,发现重启后配置被还原了。原因是现在主流发行版都用 NetworkManager 或 systemd-resolved 管理网络,resolv.conf 可能是软链接或被动态生成。正确做法是用系统对应的配置入口,比如 NetworkManager 的nmcli con mod命令,或者直接改网卡配置文件。
另一个常见坑是改完后 ping 不通域名。先ping 127.0.0.1确认本地协议栈正常,再ping 网关确认网络通路,再ping 8.8.8.8或 223.5.5.5 确认外网,最后nslookup domain测试解析。按这个顺序逐层排查,基本能定位问题在哪一层。
DNS 配置好后用resolvectl status或cat /etc/resolv.conf验证是否生效。如果有多个网卡,还要注意网卡的 DNS 优先级问题,这方面的坑我在实际工作中踩过不少,核心思路是优先使用 NetworkManager 的配置,而不是手改临时文件。
5.3 用 iperf3 验证网络性能
如果期末有网络性能测试题,iperf3 就是标准工具。它用来测试两台主机之间的最大带宽和丢包情况,用法简单但不讲清楚很容易懵。
在一台机器上启动服务端,iperf3 -s,默认监听 5201 端口。在另一台机器上执行客户端iperf3 -c 192.168.1.10,默认测试 10 秒,结束后会输出带宽、发送速率、接收速率和重传次数。
这个工具还支持反向测试,用-R参数让服务器向客户端发送数据,用来测试上传与下载方向的差异。测试时需要注意,如果两端之间隔着防火墙,要放行 5201 端口,否则客户端会卡在连接建立阶段。
机试如果要求“验证网络连通性和性能”,可以先 ping 测通,再用 iperf3 测带宽,最后用 ss 查看连接状态。整个过程不超过一分钟,但把三层验证都覆盖了。
6. 系统安装与常用工具快速部署
6.1 虚拟机安装 Linux 的三种姿势
期末复习时最怕“老师要求装 Linux,但电脑装不上”。其实虚拟机安装 Linux 这个事情,门道就三条路:用现成镜像装、用 Vagrant 拉取预装虚拟机、用 Docker 起一个容器环境。
用现成镜像装是主流做法。从官网下载 ISO 镜像,新建虚拟机时选择“稍后安装操作系统”,分配内存、磁盘和 CPU,然后挂载 ISO 启动。安装过程中最重要的是分区这一环,新手建议直接用“使用整个磁盘并配置 LVM”或“自动分区”。不要手动分区,尤其是对 swap、/、/boot 的大小没概念的时候,自动分区能避免很多装完起不来的问题。
Vagrant 适合快速搭建多台测试机。安装 Vagrant 和 VirtualBox 后,执行vagrant init generic/ubuntu2204、vagrant up,等几分钟就有一台干净的 Ubuntu 环境。这种方式方便销毁重建,适合反复练习比如重置密码、修复 GRUB 这类危险操作。
Docker 严格来说不是虚拟机,但它能模拟命令操作环境,适合复习没有 systemd 依赖的基础命令。不过如果是考 systemd 服务管理这种内容,建议还是用虚拟机,Docker 容器里没有真正的 systemd。
6.2 国产发行版与兼容性考虑
现在国产化 Linux 生态已经比较成熟,很多学校的实验课和企业环境都会用到。从命令操作的角度说,国产发行版大多基于 openAnolis、openEuler 或 Ubuntu 体系,基础命令和传统的 CentOS 几乎一致,不太需要额外补课。
需要注意的差异主要是软件包管理器。基于 Red Hat 系的国产系统用 yum/dnf,基于 Debian 系的用 apt。复习时明确自己机器上是哪一套,命令别混着来。比如在 Ubuntu 上敲yum install vim会提示命令不存在,这不是环境坏了,是包管理器不支持。
另一个实际问题是私有化软件对特定内核版本的依赖。如果你想在国产系统上部署一些较老的应用,可能会出现依赖库冲突。解决办法是优先使用发行版自带的软件源,或者用容器方式跑老版本软件,不要在系统层硬怼依赖关系。
6.3 安装 Docker 与常用集成
期末如果涉及到“快速部署服务”,Docker 是一个绕不开的加分项。最新的安装方式推荐先访问官方安装脚本,但在国内环境经常会网络超时。稳妥的做法是配置好系统自带的软件源后,使用发行版仓库安装,虽然版本旧一点,但稳定。
Ubuntu 安装 Docker 的大致流程:
sudo apt update sudo apt install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io这里有一个经常踩的坑:安装完成后直接执行docker ps,会提示权限不足,因为当前用户不在 docker 组里。用sudo usermod -aG docker $USER加组,然后重新登录,才能免 sudo 执行 docker 命令。注意,加组后当前终端会话不会立即生效,需要退出重新登录或者执行newgrp docker。
配置好 Docker 后,可以练习用docker run -d -p 8080:80 nginx快速起一个 Nginx 服务,再用ss -tlnp | grep 8080验证端口监听。这一套流程涵盖了软件安装、用户权限、端口查看、进程验证,基本把期末考试的重难点都串了起来。
7. 高频面试与期末机试题型整理
7.1 常见题型和答题方向
期末试卷的常见题型不外乎几种:选择题考命令细节,填空题考参数含义,简答题考协议或流程理解,机试考综合排障。针对每种题型,策略是不同的。
选择题容易在“看似正确的错误选项”上栽跟头。比如“哪个命令能查看文件内容”,选项有 cat、less、more、head,其实四个都能。但如果问“哪个命令能支持分页且可以向前翻页”,答案是 less。应对方法是把相似命令的功能边界搞清楚,尤其是每个命令的独特参数。
简答题如果问到“写出查找所有 .log 文件并统计行数的命令”,答题时要分步写清楚,不要只写一个模糊的答案。分步写的好处是即使最终命令写错了,步骤里体现出来的思路也能拿分。比如:
# 第一步,找出所有 log 文件 find /var/log -name "*.log" -type f # 第二步,把文件逐一传给 cat 再统计 find /var/log -name "*.log" -type f -exec cat {} \; | wc -l机试的排障题一般会故意制造问题,比如把 nginx 服务停了、改了错误配置、目录权限设成 000。做题顺序建议是:先看服务状态,再看配置文件和日志,然后测试端口,最后尝试回滚配置。按照“状态 → 配置 → 日志 → 网络”的流程走,基本不会抓瞎。
7.2 嵌入式方向与 Kali 相关提醒
如果你的课程偏向嵌入式 Linux,复习重心要加两块:交叉编译和内核模块。
交叉编译的概念其实不复杂,在电脑上编译针对 ARM 或 MIPS 平台的程序,用的工具链前缀和本机不一样,比如arm-linux-gnueabihf-gcc。期末考试一般不会要求真正编译内核,但可能会让你解释“交叉编译是什么,为什么需要它”。
内核模块相关知识点近年来考得挺多,尤其是 file_operations 结构体和字符设备驱动。核心理解是:Linux 把设备抽象为文件,用户态通过 open/read/write 操作设备文件,内核里有一个 file_operations 结构体把系统调用映射到驱动函数。
嵌入式方向的同学如果时间充裕,可以看一个简单字符设备驱动的框架:
#include <linux/module.h> #include <linux/fs.h> static int major = 0; static int my_open(struct inode *inode, struct file *filp) { return 0; } static const struct file_operations my_fops = { .owner = THIS_MODULE, .open = my_open, }; static int __init my_init(void) { major = register_chrdev(0, "mydev", &my_fops); return 0; } static void __exit my_exit(void) { unregister_chrdev(major, "mydev"); } module_init(my_init); module_exit(my_exit); MODULE_LICENSE("GPL");这段代码虽然简单,但把模块加载、卸载、字符设备注册、file_operations 回调这几件事全囊括了。如果你用的是 Kali 之类带完整桌面环境的发行版,除了记住 Kali 的渗透工具分类,也别忽略内核版本对工具链的影响,比如编译内核模块时头文件版本必须和当前内核一致,否则 insmod 会报版本不匹配的错误。
8. 常见问题速查与避坑清单
8.1 高频问题速查表
| 现象 | 可能原因 | 解决思路 |
|---|---|---|
| 解压 zip 中文文件名乱码 | 压缩包是 GBK 编码,系统是 UTF-8 | 用 unzip -O GBK 或 7z 解压 |
| rm -rf 删完发现删错目录 | 路径写错或变量为空的极端情况 | 删除前先 echo $变量、ls 确认,重要目录设 immutable 属性 |
| sudo 命令提示 not found | PATH 环境变量问题 | 用绝对路径执行 /usr/bin/命令,检查 /etc/sudoers 的 secure_path |
| 服务启动后马上退出 | ExecStart 路径错误、脚本不可执行、参数不对 | systemctl status 查退出代码,手动在终端前台运行脚本验证 |
| 域名解析失败 | resolv.conf 被重置或 DNS 服务器不可达 | 检查 NetworkManager 配置,用 nslookup 测试解析器 |
| 虚拟机安装 Linux 蓝屏 | BIOS 虚拟化技术没开或镜像不完整 | 进 BIOS 开 VT-x/AMD-V,重新校验 ISO 校验和 |
| WSL 报版本太旧 | WSL 内核组件未更新 | 管理员 PowerShell 执行 wsl --update,然后 wsl --version 确认 |
| 修改 /etc/sudoers 后 sudo 全废 | 语法错误破坏文件 | 重启前用 pkexec visudo 修复,平时养成 visudo 编辑的习惯 |
| 普通用户无法执行 docker 命令 | 用户不在 docker 组 | usermod -aG docker 用户,重新登录会话 |
| find -exec 批量操作误删文件 | 命令写错或没有复核 | 先用 -print 预览,再用 -exec ls 验证,最后执行真实操作 |
8.2 实战避坑经验
第一,条件允许的话,把每个练习环节都建立在“可回滚”的基础上。虚拟机做快照,改系统文件之前先备份,比如cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak。这样出问题能快速回到可用状态,复习的心情和效率都会好很多。
第二,不要迷恋太复杂的配置技巧,期末考的核心是对基础流程的熟悉程度。我曾经带过一个实习生,能把 iptables 的 nat 规则背得滚瓜烂熟,但让他讲清楚一条 Nginx 静态资源访问的完整链路,反而说不利索。基础知识牢固了,复杂技巧只是锦上添花。
第三,遇到问题先自己推理,再问搜索引擎,最后才问同学或老师。排错的过程比结果更有价值,因为期末考试考的就是“遇到报错你怎么办”。以后工作了也是一样,一个不怎么会写代码但会查日志的人,往往比只会背命令的人更有生产力。
再分享一个小习惯:复习期间准备一个空白终端,每天随机挑 20 条核心命令,不看笔记,硬敲一遍,再对照答案检查。坚持 3 天,你会发现很多“看过就忘”的东西已经变成肌肉记忆。Linux 这门课说白了就是一门“手上功夫”,敲得多了,自然就会了。