
Linux期末复习总结把这些点吃透考试和面试都不慌每年期末都有人拿着Linux教材从头翻到尾合上书又觉得啥也没记住。说实话Linux这门课如果只是死记硬背命令考试一过基本就忘干净了。我当年复习Linux时踩过不少坑后来做运维又把这套知识翻来覆去用才真正摸清楚期末到底考什么、工作到底用什么。这篇总结不是把教材目录给你抄一遍而是站在“学完一学期后该怎么高效梳理”的角度把Linux的核心知识串成一个能拿分的体系。这篇文章适合正在准备Linux期末考试的在校生也适合刚入行想补基础知识的运维新手。里面有命令详解、原理分析、实操步骤和排查思路你不需要一次读完按章节对照自己的薄弱点去补就行。只要把下面这些内容真正消化掉应付考试绰绰有余顺带也能给后续的面试打底子。1. 内容整体设计与思路拆解1.1 期末复习为什么要先搭框架而不是背命令我见过太多人复习Linux的方式就是打开一个“Linux命令大全”从头开始背。今天背了ls、cd明天背cp、mv后天再看grep、awk结果背到后面发现前面忘得差不多了。原因很简单——命令不是孤立存在的它们都服务于某个具体场景单靠死记硬背没有上下文记忆自然不牢靠。正确的复习方式应该是先建立整体框架。Linux学习无非围绕这几大块系统架构内核Shell、文件与目录管理、用户与权限、进程管理、网络配置、服务管理、Shell脚本编程。你把这几块在脑子里排好位置每学一条命令就知道它属于哪个模块、解决什么问题这样记忆是网状的而不是线性的。拿用户与权限来举例。这条线串起来的知识包括用户和组的概念、/etc/passwd和/etc/group文件格式、useradd/usermod/passwd命令、chmod/chown权限修改、umask默认权限、ACL扩展权限。如果你按着一个用户“从创建到授权”的流程去复习整条线就特别顺——先建用户给用户设密码把用户加进组再给用户分配文件和目录的权限每一步都是上一步的自然延伸。1.2 课程重点与考试高频点的判断方法判断哪些知识点容易考有一个笨但有效的办法看这些知识点是否“一句话解释不清”。凡是需要两三句话甚至一小段才能讲明白的概念基本都是重点。比如硬链接和软链接的区别、进程和线程的区别、Linux一切皆文件的设计理念、动态库和静态库的差异——这类问题既能考选择题也能考简答题是老师最喜欢出的。另一个判断维度是“实操中是否经常踩坑”。比如新手最容易搞混的绝对路径和相对路径、sudo和su的区别、管道和重定向的区别这些知识点在实验课上反复出错老师自然知道学生哪里薄弱期末就会重点考哪里。复习的时候优先级应该是实验课做错过的问题 概念性对比题 纯记忆性内容。1.3 这篇复习总结的使用方法我不是让你从头读到尾然后就算复习完了。我的建议是第一遍快速通读全文标记出自己生疏的章节第二遍针对薄弱章节动手敲命令实际验证第三遍对照文末的实战演练自测。Linux考的不是“会不会背”而是“给一个场景能不能想到用哪条命令、能不能说出原理”。后文每一章的结构都是“概念解释命令详解易错点提醒”复习的时候可以对照自己的教材查漏补缺。如果你能把每个章节末尾的“易错点”都搞清楚期末试卷上那些专门挖坑的选项基本骗不到你。2. 核心细节解析与实操要点命令、权限与文件系统的底层逻辑2.1 文件管理命令背后藏着的知识点很多人觉得文件管理就是ls、cd、cp、mv没什么好复习的。但考试不会直接问你“cp命令怎么用”它会结合文件类型、链接、通配符、目录结构一起考。Linux文件类型是必考点。用ls -l查看文件时第一列第一个字符表示文件类型-表示普通文件、d表示目录、l表示符号链接、b表示块设备、c表示字符设备、p表示管道文件、s表示套接字文件。光记这些字母不够你得知道怎么创建这些特殊文件——mkfifo创建管道文件、ln -s创建符号链接、mknod创建设备文件。考选择题时经常给一个ls -l的输出结果让你判断文件类型这就是送分题。硬链接与软链接的区别是期末高频简答题。硬链接是同一个inode的多个名字删除一个链接不影响其他链接访问数据但不能跨文件系统创建也不能对目录创建硬链接。软链接是一个独立的文件里面存的是目标文件的路径目标删了软链接就变成“死链”但可以跨文件系统、可以对目录创建。记住口诀“硬链接是文件的别名软链接是文件的快捷方式”。考试时如果问“修改通过硬链接或软链接访问的文件内容原文件会变吗”答案是都会变因为硬链接指向同一份数据软链接通过路径访问的也是同一份数据。通配符也是复习盲区。匹配任意多个字符?匹配单个字符[abc]匹配方括号内任一字符[!abc]匹配不在括号内的字符。注意通配符和正则表达式的区别通配符是Shell解析的用于文件名匹配正则是文本处理工具grep、sed、awk解析的用于字符串匹配。期末有时候会故意把.txt和正则里的.*.txt混在一起考你心里得有这根弦。目录树结构的标准也得记牢。/bin和/usr/bin存放命令/etc存放配置文件/home存放普通用户家目录/root是管理员家目录/tmp存放临时文件/var存放日志和缓存/dev存放设备文件/proc是内存中的虚拟文件系统。选择题经常会问“日志文件默认放在哪个目录”、“用户家目录一般在哪里”这些都是基础分。2.2 权限管理的三元组与特殊权限文件管理还有一个重头戏就是权限。Linux权限的基本模型是“用户分为三类属主u、属组g、其他人o权限分为三种读r4、写w2、执行x1”。为什么r用4、w用2、x用1表示因为它们是2的幂次可以组合出0到7的任意值rwx7、rw6、rx5等等。这比用字母做权限运算方便得多chmod 754就是属主7rwx、属组5r-x、其他人4r--。期末考试喜欢考的三个特殊权限位分别是SUIDs、SGIDs、SBITt。SUID作用在可执行文件上当用户执行该文件时进程以文件属主的身份运行。最典型的例子是passwd命令普通用户能通过它修改/etc/shadow密码文件靠的就是SUID位。SGID作用在目录上时在该目录下新建的文件会自动继承目录的属组。SBIT粘滞位作用在/tmp这类共享目录上只有文件属主才能删除自己的文件其他人即使有写权限也删不了别人的文件。这些特殊权限在chmod命令中用数字表示是在权限位前加第四位数字比如chmod 4755给文件加SUID、chmod 2770加SGID、chmod 1777加SBIT。复习时容易搞混的是“对文件生效”还是“对目录生效”SUID只对文件有意义SGID和SBIT主要对目录有意义这个点经常拿来出判断题。ACL权限也是近几年的热门考点。传统权限只能设置一个属主、一个属组和其他人如果想让某个特定用户对文件有特定权限传统方式搞不定。ACLAccess Control List用setfacl命令给指定用户或组设置单独权限setfacl -m u:zhangsan:rw /data表示给zhangsan对/data的读写权限。用getfacl查看ACL设置。ACL权限位在ls -l的输出里用号标记。这个知识点理解起来不难但很多人复习时容易忽略。2.3 文件系统的挂载、磁盘管理与inode文件系统这块期末重点在挂载概念和inode的理解。挂载就是把一个设备分区、U盘、光盘关联到目录树上的某个目录之后访问该目录就相当于访问设备上的文件系统。mount /dev/sdb1 /mnt/data就完成了挂载umount取消挂载。如果提示“device is busy”说明有进程正在使用该挂载点可以用fuser -km /mnt/data强制结束占用进程。/etc/fstab文件是开机自动挂载的配置文件格式是“设备 挂载点 文件系统类型 挂载选项 dump备份标记 fsck检查顺序”。考试会给你一行fstab让你解释每个字段的含义也会问为什么修改fstab出错会导致系统无法启动——因为系统启动时会按fstab逐行挂载格式错误或挂载点不存在都可能启动失败。inode是Linux文件系统里绕不开的概念。inode保存的是文件的元数据权限、属主、大小、时间戳、数据块指针但不包含文件名。文件名存在目录项里目录项指向inodeinode指向数据块。用ls -i查看文件的inode号用stat查看inode详细信息。出现“No space left on device”但df -h显示磁盘还有空间时八成是inode耗尽了用df -i确认。这个问题在真实运维里很常见期末如果出场景题考的就是你对inode的理解。磁盘分区部分记住fdiskMBR分区、单盘2TB以下和partedGPT分区、单盘2TB以上就够了会用lsblk查看块设备信息、mkfs.ext4 /dev/sdb1格式化分区。知道fdisk对分区表类型的限制选择题就能拿分。3. 用户、进程与服务的实操层从命令到场景的进阶3.1 用户和组的管理一条线串起所有细节前面说过用户和组可以按流程来复习。具体命令是useradd创建用户、passwd设置密码、usermod修改用户属性、userdel删除用户groupadd创建组、groupmod修改组、groupdel删除组id查看用户身份信息、su切换用户需要目标用户密码、sudo以管理员权限执行命令需要自己密码且在sudoers中有授权。复习时要搞清楚一个重要区别su和sudo。su - root直接切换为root用户环境变量也切换到root的su root切换后仍保留当前用户的某些环境变量。sudo是“用root身份执行这条命令”执行完还是当前用户。sudo的配置文件是/etc/sudoers系统建议用visudo命令修改因为visudo会做语法检查避免改错导致sudo无法使用。账户相关文件强调一下。/etc/passwd每个字段的含义用户名:密码占位符:UID:GID:描述信息:家目录:登录Shell。注意密码加密后的内容在/etc/shadow里普通用户对passwd文件只有读权限对shadow没有任何权限。UID的约定是0给root1-999给系统用户1000给普通用户。实际操作中创建用户时useradd默认会同时创建同名组和家目录。如果不想创建家目录加-M参数指定家目录用-d参数指定UID用-u参数指定附加组用-G参数注意-G和-g的区别——-g是主组-G是附加组。一个用户只能有一个主组可以有多个附加组登录后默认属于主组。这些参数考选择题特别容易混淆动手建一次用户就记住了。3.2 进程管理前台、后台与系统负载的理解进程管理在期末的考法通常有两种一种是命令记忆题问查看进程用什么、结束进程用什么另一种是概念理解题问僵尸进程是怎么产生的、孤儿进程谁来收养。查看进程的命令ps -ef完整显示所有进程ps aux也是查看全部进程a显示所有用户u显示详细信息x包括没有终端控制的进程输出里PID是进程号PPID是父进程号%CPU和%MEM是资源占用百分比。top动态查看进程按P按CPU排序、按M按内存排序、q退出。pgrep按名称查找进程号pstree以树状显示进程父子关系。ss -tlnp查看端口对应的进程替代了netstat。结束进程的命令kill默认发送TERM信号请求正常退出kill -9发送KILL信号强制杀死kill -l列出所有信号。pkill按进程名结束pkill -u用户名结束该用户的所有进程。有时候kill杀不掉进程可以查一下进程是否处于D状态不可中断睡眠一般是等待IO这种进程很难杀掉可能得重启系统解决。僵尸进程是很多同学想不明白的概念。简单说子进程结束了但父进程没有调用wait()回收它的退出状态子进程的进程描述符还残留在内核里这就是僵尸进程。它不占CPU也不占内存但内核的进程表条目会一直被占用积累多了会导致无法创建新进程。处理办法是找到它的父进程kill掉父进程孤儿进程会被initPID 1收养并自动回收。如果是systemd管理的服务产生了僵尸子进程重启对应服务通常就能清理掉。孤儿进程反过来父进程先挂了子进程被PID 1收养变成后台运行这类进程本身没有危害。期末考试如果问“孤儿进程和僵尸进程的区别”你就答孤儿进程还在运行、只是没有了原父进程僵尸进程已经死了、但残留着进程表条目。前台后台切换也是实操必考命令后加放入后台运行CtrlZ挂起当前程序jobs -l查看后台任务bg让挂起的任务在后台继续运行fg把后台任务调回前台。nohup命令用于让进程在退出终端后继续运行标准格式是nohup 命令 输出重定向到文件时可加nohup 命令 output.log 21 。注意21的含义标准错误重定向到标准输出的位置这是面试题里常考的一个细节。3.3 systemd与服务的开机自启现在主流的Linux发行版都用systemd来管理服务替代了老的SysV init脚本。复习systemd只需要抓住一套核心命令systemctl start|stop|restart|status|enable|disable 服务名。start立即启动stop立即停止restart重启status查看运行状态enable设置开机自启disable取消开机自启。还有systemctl list-units --typeservice查看所有服务状态systemctl is-enabled 服务名查看是否开机自启。服务配置文件存放在/usr/lib/systemd/system/软件包自带的和/etc/systemd/system/管理员自定义或覆盖的。配置文件有[Unit]段描述依赖关系、[Service]段定义启动命令和运行用户、[Install]段定义开机自启的target。手动创建服务文件后要执行systemctl daemon-reload重载配置再systemctl enable让它在开机时被拉起。改完服务文件不daemon-reload直接restartsystemd用的还是旧配置——这个坑在真实环境里天天有人踩。systemd还有几个概念如果课件里提到了也要认识target相当于运行级别multi-user.target相当于字符界面多用户模式graphical.target相当于图形界面模式journalctl是统一的日志查看工具journalctl -u 服务名查看指定服务日志journalctl -f实时滚动查看journalctl --since 1 hour ago查看最近一小时。日志在排查服务启动失败时是救命工具。3.4 网络配置与常见排查思路网络部分是Linux运维的基础期末常考的包括查看IP、临时配置IP、DNS解析、连通性测试。查看网络信息的命令ip addr查看IP地址简写ip aip route查看路由表简写ip rss -tulnp查看监听端口hostname查看主机名。老命令ifconfig和route在现在的系统中可能没装考试如果写了ifconfig但不给环境你知道概念就行实操优先用ip命令。临时配置IP可以直接用ip addr add 192.168.1.100/24 dev ens33配完ip route add default via 192.168.1.1添加默认网关。永久配置因发行版而异CentOS/RHEL系在/etc/sysconfig/network-scripts/ifcfg-ens33里修改设置BOOTPROTOstatic、IPADDR、NETMASK、GATEWAY、DNS1Ubuntu系在/etc/netplan/目录下的yaml里配置改完netplan apply生效。这个知识点不用死记路径理解“临时配置重启失效、永久配置写入配置文件”就够了。测试网络连通性ping -c 4 IP地址测连通curl -I URL测HTTP服务nslookup或dig域名解析排查DNS问题traceroute路由追踪。排查网络不通的思路是自底向上先ping 127.0.0.1看本机协议栈是否正常再ping本机IP看网卡和IP配置再ping网关看二层三层是否通再ping外网IP看路由和NAT最后ping域名看DNS解析是否正常。这个排查流程写进简答题能拿满分实操中也是这个顺序。关于热词里提到的“linux中配置dns出现的问题”常见的主流问题有两个一是/etc/resolv.conf被NetworkManager覆盖你手动改了IP和DNS网卡一重启DNS就还原解决办法是在网卡配置文件里设DNS1并确保PEERDNSno二是systemd-resolved进程监听53端口但你自己的dnsmasq或named也想监听53端口冲突导致解析异常排查时用systemctl status systemd-resolved和ss -tlnp | grep 53看谁在占用。理解了这两个坑考试场景题基本能对上。3.5 软件包管理yum/dnf与apt的对照表软件安装方式一般就三种包管理器、源码编译、容器镜像。期末重点在前两种的基础概念。老牌RedHat系用yum8用dnf命令基本兼容Ubuntu系用apt。两者都解决依赖关系问题你安装一个软件包它会自动把依赖的库和包一起装上。核心命令做张对照表记操作RHEL系yum/dnfDebian系apt更新仓库缓存yum makecacheapt update安装软件yum install 包名apt install 包名卸载软件yum remove 包名apt remove 包名搜索软件yum search 关键词apt search 关键词查看已安装rpm -qa / yum list installeddpkg -l查看包信息rpm -qi 包名dpkg -s 包名源码编译安装的套路是固定的configure检查环境生成Makefile、make编译、make install安装。configure阶段可以用--prefix指定安装路径--with/--without勾选功能模块。源码安装的好处是灵活可控坏处是依赖手动解决一旦缺库就得自己找。期末可能会考三个阶段的作用你就答“生成Makefile、编译源码、拷贝到系统目录”。4. Shell脚本与文本处理最容易被忽略的“拉分项”4.1 文本三剑客的难点拆解grep、sed、awk这三件套是Linux的精髓期末几乎必考也是面试必问。很多人觉得它们难是因为没搞懂各自的分工grep负责筛选行sed负责按模式编辑流awk负责按列做文本处理。grep基本用法是grep 模式 文件常用选项-i忽略大小写、-v取反、-n显示行号、-r递归搜索目录、-E使用扩展正则。注意egrep等同于grep -Efgrep等同于grep -F固定字符串。输出匹配行、统计匹配行数用grep -c、只输出匹配的部分用grep -o这个在提取IP、提取时间戳场景很好用。正则表达式方面基础正则的*和扩展正则的的区别是常见考点*表示前一字符重复任意次含0次表示前一字符重复至少1次。sed命令格式是sed -n 3p 文件打印第3行、sed s/旧/新/g 文件替换所有匹配、sed -i直接修改文件、sed /关键词/d删除匹配行、sed -n 5,10p打印5到10行。理解sed的工作原理是“按行读取-模式匹配-执行命令-输出”默认会对每一行执行一遍脚本里的命令。sed -i这个概念务必记住不加-i只是把处理后的内容输出到屏幕不会改原文件加上-i才是直接改文件生产环境里用sed -i做批量替换前一定先备份或者先不带-i试跑一遍。awk默认按空格或Tab把每行分成多列$1是第一列$2是第二列$NF是最后一列NF是列数NR是当前行号。一个经典的入门命令是awk {print $1, $NF} 文件打印第一列和最后一列。awk还支持BEGIN块在读取文件前执行和END块在读完文件后执行以及条件匹配awk $3 100 {print $1}。处理日志文件时候用awk提取指定列、按条件过滤、做累加统计比手工翻日志高效得多。awk的-F参数可以指定分隔符awk -F: {print $1} /etc/passwd就是按冒号切割提取用户名列表这个命令我几乎每周都会用到。4.2 Shell脚本的语法基础与变量细节Shell脚本入门并不难期末通常要求能看懂脚本、能补全脚本、能说出脚本执行过程。核心语法包括变量赋值namevalue等号两边不能有空格这点特别容易写错、变量引用$name或${name}后者在变量名后面紧跟其他字符时必须用、特殊变量$0脚本名、$#参数个数、$所有参数、$?上一条命令的退出码、条件判断if、elif、else加fi、循环for、while加done、函数定义function 名称() { ... }。条件判断里的测试语句是重灾区。文件测试-f是不是普通文件、-d是不是目录、-e存不存在、-r/-w/-x有没有读写执行权限。数值比较用双括号-eq相等、-ne不等、-gt大于、-lt小于。字符串比较用单方括号判断相等、判断不等、-z判断是否为空串。字符串比较和文件测试都用方括号的话注意方括号两边必须有空格[ $name root ]缺了空格报错找到不命令。for循环的几种写法要会看for i in 1 2 3; do echo $i; done遍历列表for ((i0; i10; i)) C语言风格循环for file in *.txt遍历当前目录所有txt文件。while循环常用于逐行处理文件while read line; do echo $line; done 文件名。这些能看懂、能写简单的期末就没问题。脚本执行权限也是爱考的点直接执行./script.sh需要脚本有x权限用bash script.sh执行则不需要。开机自动执行脚本的常见方式写进/etc/rc.local需要该文件有执行权限或创建systemd服务后者更规范。4.3 vim文本编辑器的核心操作vim在期末实验考试中经常出现但分值占比不高。你需要掌握的是vim的三种模式普通模式、插入模式、命令行模式以及相互切换i插入、esc回普通模式、:wq保存退出、:q!不保存强制退出、dd删除当前行、yy复制当前行、p粘贴、/关键词搜索、:set nu显示行号。这些够了。再深入一点可能会考:nohl取消搜索高亮:%s/旧/新/g全局替换。vim里如果文件只读或没权限保存时会报错可以用:wq!强行保存但前提是确实有权限修改。遇到E45: readonly option is set加!强制执行这个提示多半是文件属性只读或当前用户权限不够别硬折腾检查权限才是正解。5. 实操过程与核心场景实现跟着走一遍胜过背十遍5.1 从零搭建一个完整的实验环境我强烈建议在虚拟机里实际操作一遍光看文章复习效果会打折。用VirtualBox或VMware都行镜像选CentOS 7.9或Ubuntu 20.04 LTS均可安装时选最小化安装以节省资源。虚拟机的网络模式建议选NAT或桥接。NAT模式下虚拟机通过宿主机的网络访问外网IP由虚拟网卡分配桥接模式下虚拟机直接占用局域网IP跟宿主机在同一网段。实验阶段NAT就够用涉及局域网互通时再切桥接。安装完成后先做几件事配置静态IP避免每次重启IP变化、关闭防火墙或放行对应端口systemctl stop firewalld、配置yum源或apt源、用ping确认能上网。很多同学装完虚拟机第一个遇到的问题就是热词里提到的“linux打开终端”——在图形界面上右键选Open Terminal即可如果是纯命令行界面直接就是终端不需要额外操作。还有“虚拟机安装linux蓝屏”的情况大概率是BIOS里没开启CPU虚拟化VT-x/AMD-V重启进BIOS打开虚拟化功能或者换用更稳定的系统镜像官方镜像优先不要用不明来源的ghost镜像。5.2 一条命令看懂系统状态综合排查演练我给你一条综合命令可以用来快速了解一台主机的状态期末面试都能用上hostnamectl | head -1 # 查看系统版本和主机名 uptime # 查看负载和运行时长 df -h # 查看磁盘空间 free -h # 查看内存使用 ss -tlnp # 查看监听端口 ps aux --sort-%cpu | head -5 # 查看CPU占用最高的5个进程真正动手敲一遍你会发现这些输出之间是有联系的磁盘快满了可能导致日志写入失败内存不足可能导致OOM杀进程端口被占用可能导致服务起不来。能把现象和原因关联起来Linux才算是入了门。真题里给一段top输出让你分析系统有哪些问题本质上考的就是这种关联分析能力。5.3 排查服务启动失败的完整流程在实验中故意制造故障再排查是提升最快的方式。比如写一个错误的systemd服务文件然后执行systemctl start测试你会发现服务起不来。这时候的排查顺序是systemctl status myservice # 查看服务状态和最近日志 journalctl -u myservice -n 50 # 查看服务最近50行日志 systemctl cat myservice # 查看服务配置内容确认路径和命令没错 ls -l /usr/local/bin/myscript # 确认可执行文件存在且有执行权限整个过程的核心思路是“从状态看线索、从日志找原因、从配置查问题”。状态里会给出失败原因或跳转到的日志位置日志里会写出具体报错脚本不存在、权限不够、端口被占最后回到配置文件确认命令路径、运行用户、工作目录这些细节。这个排查思路不只适用于systemd几乎所有服务问题都能按这个路径拆解。排查完顺手记录一下排查过程这种记录期末复习价值极高——老师出的场景题经常就是把真实故障改头换面变成简答题你踩过一遍坑比看十遍理论都有用。5.4 综合实战脚本批量创建用户并设置权限这个脚本覆盖了用户管理、循环、条件判断、权限设置多个考点建议亲手敲一遍#!/bin/bash # 批量创建用户并给指定用户添加sudo权限 for user in zhangsan lisi wangwu; do if id $user /dev/null; then echo 用户 $user 已存在跳过 else useradd $user echo 123456 | passwd --stdin $user # 初始化密码 echo 用户 $user 创建成功 fi done # 将zhangsan加入wheel组CentOS中wheel组默认有sudo权限 usermod -aG wheel zhangsan echo zhangsan 已加入wheel组 # 创建共享目录并设置SGID使新文件自动继承组 mkdir -p /data/share chown :zhangsan /data/share chmod 2775 /data/share echo 共享目录设置完成脚本里的几个关键点id命令判断用户是否存在/dev/null把标准输出和错误都丢弃掉passwd --stdin从标准输入读密码适用于脚本注意Ubuntu上需要额外配置才支持这个参数或者改用chpasswdusermod -aG的-a参数必须加不加会覆盖用户原有的附加组chmod 2775中的2表示SGID加上它后新文件自动归zhangsan组这个细节本身就是一个高频面试题。脚本写完后用bash useradd_demo.sh执行再用id zhangsan、ls -ld /data/share、ls -l /data/share这几个命令逐一验证结果。6. 常见问题与排查技巧实录期末和面试里最容易翻车的地方6.1 高频易错点速查表每一行都值得记下来下面这些内容是我从历届学生踩坑和真实运维场景里总结出来的高频易错点。考前过一遍能救不少分易错点错误理解正确理解su和sudo都是切换到rootsu切换用户sudo只是以root身份执行命令/和root目录同一个东西/是文件系统根目录/root是root用户的家目录chown和chmod作用一样chown改属主属组chmod改权限相对路径和绝对路径都差不多以/开头的是绝对路径否则是相对路径软链接和硬链接都是快捷方式硬链接共享inode软链接存的是路径grep和find都能搜索文件grep搜文件内容find按文件名/属性找文件管道和重定向都是数据流转管道连接命令重定向对接文件单引号和双引号都一样单引号内变量不展开双引号内变量会展开防火墙firewalld和iptables互不相关firewalld底层还是用iptables规则只是管理方式更友好前台进程和后台进程是否显示窗口有终端控制的是前台脱离终端的是后台这张表里其实每条都能展开成一个面试点。比如“单引号和双引号的区别”你不仅要会理论最好能直接说echo $USER输出用户名echo $USER输出$USER。动手验证一次比背十遍记得牢。6.2 解压乱码与编码问题一个很实用的小场景热词里有“linux 解压文件乱码”这个在Windows和Linux之间传文件很常见。Windows上压缩的zip文件到Linux下解压后文件名乱码本质原因是编码不一致Windows用GBK给文件名编码Linux按UTF-8解码就乱了。解决方案很多最简单的是用unzip配合指定编码参数unzip -O GBK file.zip不同版本的unzip参数可能不同有的用-o有的用-0。如果unzip不支持-O参数可以先用Python的zipfile模块处理或者安装unar工具unarchiver来自动识别编码。通用的原则是先确认压缩包是在什么系统下产生的再选择对应的编码参数去解压。防止浪费时间的土办法是压缩前在Windows里把文件名统一改成英文或拼音或者打包的时候优先用tar.gz格式Linux原生工具创建的tar包打包时能保留正确的UTF-8编码这样到Linux下基本不会乱码。桌面端图形界面工具如ArkKDE、File RollerGNOME对编码的兼容性相对好一些也可以试试。6.3 权限不足时的常见报错排查“Permission denied”是Linux新手遇到最多的报错。排查思路就三步先看当前用户是谁whoami再看文件属主属组是谁ls -l最后看当前用户是否在文件的权限范围内。这里有个常见的误判以为root能干所有事其实root也会被某些限制挡住比如SELinux——CentOS系统上的SSH公钥没生效很多时候不是权限问题而是~/.ssh目录或authorized_keys文件的SELinux上下文不对用restorecon -Rv ~/.ssh修复即可。如果遇到“sudo: 命令找不到”可能是因为普通用户的环境变量PATH不包含/sbin目录或者对方的sudo配置里secure_path限制了可执行路径。这种情况可以先把命令的绝对路径写全比如/usr/sbin/ss -tlnp再去检查sudoers配置。“bash: 命令未找到”则不同那个多半是命令确实没安装最小化安装缺少很多命令用yum provides或apt-file search去查这个命令属于哪个包装上即可。把“命令不存在”“没有权限”“配置不对”这三类问题分清排查报错就快多了。6.4 从期末到面试Linux复习如何延伸期末复习完如果还想更进一步建议把注意力放到热词里出现的“linux面试题”上。面试问的Linux问题其实和期末考的并不完全脱节主要差异在于面试更注重场景。比如“系统负载很高怎么排查”考察的是top、ps、iostat、vmstat这些命令的综合运用再比如“服务器上某个进程CPU一直100%怎么定位”考察的是ps -L、strace、gdb的操作思路“磁盘满了怎么办”考察的是df、du、lsof L1找大文件、删日志的思路。本质上还是把命令用到场景里。“linux提权”这个热词如果是出现在信息安全方向的课程里它说的是通过漏洞或配置错误从普通用户拿到root权限比如利用sudo配置不当、SUID文件设置错误、内核漏洞等。这个内容在期末课程中不一定考但如果你对安全方向感兴趣建议去了解一下为什么会存在这些风险以及如何通过合理的权限设计去规避。如果精力有余可以试试“kali linux 学习笔记”这类方向kali里很多工具的底层都依赖Linux的网络配置、服务管理、权限体系你把基础打牢了学那些工具会快很多。7. 最后的实战自测拿这套题验证你的复习效果复习完了一定要自测我出几道覆盖核心考点的题目你先自己写答案再对照后面的要点简述硬链接和软链接的区别并说明ln命令如何创建软链接。写出查看IP地址、查看磁盘空间、查看内存使用情况、查看进程列表的常用命令。如何将一个用户加入sudo组简述visudo的作用。简述僵尸进程是如何产生的如何清理僵尸进程。编写一个Shell脚本循环读取文件中的用户名列表逐个创建用户并设置密码。排查“服务启动失败”问题时你会按怎样的顺序执行哪些命令使用一条命令查出系统中监听8080端口的进程PID。参考答案的要点我都写在前面章节里了你如果能不看上文直接写出这些题的完整答案说明复习得基本到位如果某些题卡住了就回头把对应章节再读一遍。考试时遇到类似题思路清晰比死记硬背重要得多先把原理讲明白再写命令和参数这一套组合拳下来分数不会低。最后再说说我自己复习Linux的体会。当年我复习时最吃亏的就是只看不练以为把命令背下来就能得高分结果实验考试一上手就露馅。后来我换了个策略每学一个章节就立刻开一个虚拟机验证哪怕是最简单的ls和cd也要动手敲一遍并思考它的输出意味着什么。慢慢地那些命令就不再是一个个孤立的名字而是我手里的工具。期末考的不只是命令本身更是你“是否真的会操作这套系统”的证明——你亲手敲过的命令考试时一定会从记忆深处跳出来帮你。