尧图精选

Linux期末复习实战指南:从命令基础到系统管理全覆盖

🕒 发布时间:2026/10/1 5:44:02 📁 来源:尧图网络
期末复习最怕的不是内容多而是明明学过的东西一到上机就手抖。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 fgrep 的常用组合是grep -r error /var/log。这三组命令如果能在 30 秒内流畅敲出来文件操作部分基本过关。别觉得简单机试考试很多人的时间都浪费在“想不起来命令怎么写”上而不是题目本身有多难。2.2 管道、重定向与输入输出管道和重定向是 Linux 的“连接件”也是期末必考的难点。简单说重定向是把标准输入输出指向文件管道是把一个命令的输出接到另一个命令的输入。三个常见符号要分清楚覆盖写追加写2重定向错误输出。还有一个细节经常考 file 21表示把标准输出和错误输出都写到同一个文件顺序不能写反否则错误信息还是会打到屏幕上。管道符|是过滤和统计的利器。经典场景是统计日志里 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 ux script.sh、chmod g-w file.txt、chmod or readme适合只改动某个对象的某个权限时用。数字方式r4、w2、x1。chmod 755的含义是属主 7rwx、属组 5r-x、其他人 5r-x。这个换算规则笔试几乎必考记住 421 的组合即可。目录的执行权限经常被忽略。读权限只是能列出文件名要能进入目录必须要有执行权限。所以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 机制特殊权限位不是每次考试都考但考出来往往是拉分题。setuidsuid用数字 4 表示典型场景是/usr/bin/passwd文件它使普通用户执行该程序时临时拥有属主的权限从而能修改 /etc/shadow。查看时表现为属主执行权限位变成s。setgidsgid用数字 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 --typeservice看每一行的 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] Descriptionmy test service Afternetwork.target [Service] Typesimple ExecStart/usr/bin/python3 /opt/test.py Restarton-failure [Install] WantedBymulti-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 21 。这条命令的意思是“用 nohup 让进程忽略挂断信号日志写到 log.txt放到后台运行”。注意末尾的不能漏漏了就还占着终端。5. 网络配置与常用排障5.1 查看 IP、路由与端口网络配置在 Linux 期末里占比不小而且和前面学的命令关系紧密。首先要掌握查看网络状态的命令ip addr 查看 IP 地址ip route 查看路由表ss -tlnp 查看监听端口和对应进程。传统教材会先教 ifconfig、netstat、route但新版发行版默认不装 net-tools 了所以我建议直接练 ip 和 ss。两者功能对应关系是:ip addr 对应 ifconfigss -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 ar /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 foundPATH 环境变量问题用绝对路径执行 /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 这门课说白了就是一门“手上功夫”敲得多了自然就会了。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →