Linux 面试高频考点记忆手册
按互联网大厂程序员面试高频题型整理 Linux 核心知识点,突出“分类、考点、典型问法、易错点、记忆口诀”,适合面试前快速突击和反复背诵。
目录
- 高频考点总览
- Linux 基础认知
- 文件与目录操作
- 文件权限与用户管理
- 进程与线程
- 系统资源与性能排查
- 磁盘与文件系统
- 网络与端口排查
- Shell 与文本处理
- 日志排错与线上定位
- 高频场景题
- 考前速背口诀
高频考点总览
| 分类 | 高频考点 | 面试频率 | 一句话记忆 |
|---|---|---|---|
| 基础认知 | Linux 特点、内核/用户态、发行版区别 | ⭐⭐⭐ | 一切皆文件,靠权限和进程管理系统 |
| 文件目录 | ls、pwd、cd、cp、mv、rm、find、软硬链接 |
⭐⭐⭐⭐⭐ | 找文件、看文件、改文件、删文件 |
| 权限用户 | chmod、chown、chgrp、umask、用户组 |
⭐⭐⭐⭐⭐ | 三类用户,三组权限 |
| 进程管理 | ps、top、kill、后台运行、僵尸进程、孤儿进程 |
⭐⭐⭐⭐⭐ | 进程是资源分配单位 |
| 性能排查 | CPU 高、内存高、负载高、I/O 高怎么查 | ⭐⭐⭐⭐⭐ | 先整体,后进程,再线程 |
| 磁盘系统 | df、du、inode、文件系统、挂载 |
⭐⭐⭐⭐ | 容量看块,文件数看 inode |
| 网络排查 | netstat、ss、ping、curl、telnet |
⭐⭐⭐⭐ | 先通不通,再看端口和服务 |
| Shell 文本 | 管道、重定向、grep、awk、sed、sort、uniq |
⭐⭐⭐⭐⭐ | 小工具串起来就是生产力 |
| 日志排错 | tail、less、grep、定位异常请求 |
⭐⭐⭐⭐⭐ | 线上问题先看日志 |
复习建议
- 第一遍先记每个命令“是干什么的”。
- 第二遍重点背“命令区别”和“常见面试陷阱”。
- 第三遍按故障排查流程串起来说,形成完整面试话术。
Linux 基础认知
面试出现频率:⭐⭐⭐
这部分常考什么
| 考点 | 常见问法 | 记忆点 |
|---|---|---|
| Linux 有什么特点 | 为什么服务端常用 Linux? | 稳定、安全、可脚本化、适合服务器 |
| 内核态和用户态 | 为什么要区分?系统调用是什么? | 应用不能直接碰硬件,要通过内核 |
| 发行版 | CentOS、Ubuntu 有什么区别? | 内核相近,生态和包管理不同 |
| 一切皆文件 | 这句话怎么理解? | 设备、目录、普通文件都可统一抽象 |
面试要点
- Linux 适合服务端,核心原因是稳定、资源利用率高、可自动化运维、工具链完善。
- 用户态运行应用程序,内核态负责调度 CPU、内存、磁盘、网络等底层资源。
- 应用访问系统资源通常要经过系统调用。
- Linux 强调“组合哲学”,一个命令只做一件事,配合管道完成复杂工作。
记忆口诀
Linux 四个关键词:稳定、安全、脚本化、适合服务端。
用户态写业务,内核态管硬件。
文件与目录操作
面试出现频率:⭐⭐⭐⭐⭐
核心命令速记
| 命令 | 作用 | 高频用法 | 面试记忆点 |
|---|---|---|---|
pwd |
查看当前目录 | pwd |
我在哪 |
ls |
查看目录内容 | ls -l、ls -a、ls -lh |
有什么 |
cd |
切换目录 | cd ..、cd ~、cd - |
去哪 |
mkdir |
创建目录 | mkdir -p a/b/c |
建目录 |
touch |
创建文件/更新时间 | touch a.txt |
建文件 |
cp |
复制文件 | cp -r dir1 dir2 |
复制 |
mv |
移动/重命名 | mv a.txt b.txt |
挪位置或改名 |
rm |
删除 | rm -rf dir |
删除要谨慎 |
find |
查找文件 | find . -name "*.log" |
按条件查 |
which |
查命令位置 | which java |
命令在哪 |
常见问法
| 考点 | 常见问法 | 重点回答 |
|---|---|---|
ls -l 每列含义 |
第一列是什么意思? | 文件类型 + 权限,后面是链接数、属主、属组、大小、时间、文件名 |
cp 和 mv 区别 |
为什么 mv 很快? |
同盘符下 mv 多数只是改元数据,不一定复制内容 |
rm -rf 危险在哪 |
为什么线上慎用? | 删除不可恢复,尤其路径变量为空时风险极高 |
find 和 grep 区别 |
都是查找,有什么不同? | find 查文件,grep 查内容 |
软链接和硬链接
| 类型 | 本质 | 特点 | 面试记忆点 |
|---|---|---|---|
| 硬链接 | 多个文件名指向同一个 inode | 删除一个不影响另一个,不能跨文件系统,通常不能链目录 | 像“同一个人多个名字” |
| 软链接 | 一个独立文件,保存目标路径 | 可以跨文件系统,可链接目录,原文件删了会失效 | 像“快捷方式” |
高频回答模板
find适合按名称、时间、大小、类型查文件。grep适合在文件内容里按关键字、正则查文本。- 硬链接本质上共享 inode,软链接本质上保存路径。
记忆口诀
找文件用
find,找内容用grep。
硬链接看 inode,软链接看路径。
文件权限与用户管理
面试出现频率:⭐⭐⭐⭐⭐
权限体系
Linux 权限通常分为三类用户:
u:文件拥有者g:所属组o:其他用户
三种基础权限:
r:读,数值4w:写,数值2x:执行,数值1
常考命令
| 命令 | 作用 | 示例 | 记忆点 |
|---|---|---|---|
chmod |
改权限 | chmod 755 app.sh |
改 rwx |
chown |
改拥有者 | chown root app.sh |
改属主 |
chgrp |
改用户组 | chgrp dev app.sh |
改属组 |
umask |
默认权限掩码 | umask 022 |
新建文件默认权限受它影响 |
chmod 755 到底是什么意思
| 用户类别 | 数值 | 权限 |
|---|---|---|
| 拥有者 | 7 |
rwx |
| 所属组 | 5 |
r-x |
| 其他用户 | 5 |
r-x |
高频易错点
| 易错点 | 正确认知 |
|---|---|
目录的 x 没啥用 |
错。目录的 x 代表是否可进入 |
文件有 r 就能执行 |
错。执行要看 x |
chmod 777 最方便 |
错。方便但危险,线上尽量最小权限原则 |
新建文件默认就是 666 或 777 |
还要结合 umask 计算 |
用户与用户组
| 考点 | 常见问法 | 记忆点 |
|---|---|---|
| 用户 | 如何查看当前用户? | whoami |
| 用户组 | 一个用户能属于多个组吗? | 可以 |
| root | root 有什么特殊性? | 超级用户,权限最高 |
| sudo | 为什么不用 root 直接开发? | 降低误操作风险,按需提权 |
记忆口诀
权限三类:属主、属组、其他。
权限三位:读 4、写 2、执行 1。
文件看内容,目录看进入。
进程与线程
面试出现频率:⭐⭐⭐⭐⭐
进程基础
| 考点 | 常见问法 | 记忆点 |
|---|---|---|
| 进程是什么 | 进程和程序区别? | 程序是静态文件,进程是运行中的程序 |
| 线程是什么 | 线程和进程区别? | 线程是 CPU 调度单位,进程是资源分配单位 |
| 父子进程 | 为什么会有 PPID? | 进程创建会形成父子关系 |
| 前台/后台 | 如何让程序在后台跑? | nohup、& |
常用命令
| 命令 | 作用 | 示例 |
|---|---|---|
ps |
查看进程 | ps -ef |
top |
动态查看进程资源占用 | top |
kill |
发送信号给进程 | kill -9 1234 |
pgrep |
按名称找进程 | pgrep java |
jobs |
查看后台任务 | jobs |
nohup |
挂起终端后继续运行 | nohup java -jar app.jar & |
常见信号
| 信号 | 含义 | 面试回答 |
|---|---|---|
15 (SIGTERM) |
正常终止 | 优先尝试,给程序清理资源机会 |
9 (SIGKILL) |
强制杀死 | 无法被捕获,最后手段 |
2 (SIGINT) |
中断 | 类似 Ctrl + C |
僵尸进程和孤儿进程
| 概念 | 形成原因 | 是否危险 | 如何记忆 |
|---|---|---|---|
| 僵尸进程 | 子进程退出后,父进程没回收状态 | 多了会占 PID 等资源 | 死了但尸体还在 |
| 孤儿进程 | 父进程先退出,子进程被 init/systemd 接管 |
一般不危险 | 没爹了但被系统收养 |
高频面试题
问:如何查一个 Java 进程是不是还活着?
可以回答:
- 先用
ps -ef | grep java或pgrep -a java看进程是否存在。 - 再用
top -p pid看 CPU、内存是否异常。 - 如果怀疑端口没监听,再配合
ss -lntp或netstat -lntp看端口。
记忆口诀
程序是静态的,进程是运行的。
进程分资源,线程管调度。
先
kill 15,再kill 9。
系统资源与性能排查
面试出现频率:⭐⭐⭐⭐⭐
面试最爱问的排查思路
| 问题现象 | 先看什么 | 再看什么 | 常见原因 |
|---|---|---|---|
| CPU 飙高 | top |
top -H -p pid |
死循环、频繁 GC、热点线程 |
| 内存飙高 | free -h |
top、进程内存占用 |
内存泄漏、缓存过大 |
| Load 高 | uptime |
CPU/I/O 是否阻塞 | 运行队列长、I/O 卡住 |
| 磁盘满 | df -h |
du -sh * |
日志过大、大文件未清理 |
| I/O 高 | iostat |
结合具体进程分析 | 大量读写、刷盘慢 |
核心命令
| 命令 | 作用 | 面试记忆点 |
|---|---|---|
top |
总览 CPU、内存、进程资源 | 先看整体,再看进程 |
free -h |
查看内存使用 | 关注可用内存,不只看 used |
uptime |
查看负载 | load average 不等于 CPU 使用率 |
vmstat |
看系统运行状态 | 能看上下文切换、阻塞、内存 |
iostat |
看磁盘 I/O | 判断是否 I/O 瓶颈 |
CPU 使用率高怎么排查
回答模板:
- 用
top看哪个进程 CPU 高。 - 用
top -H -p pid看哪个线程高。 - 如果是 Java,再把线程 ID 转成 16 进制,去线程栈里定位热点方法。
- 结合日志、业务请求量和代码逻辑判断是不是死循环、空转或者频繁重试。
内存使用高怎么排查
回答模板:
- 先用
free -h看系统内存整体情况。 - 用
top或ps aux --sort=-%mem找到占用内存最大的进程。 - 判断是正常缓存、短时峰值,还是持续上涨的泄漏趋势。
- 如果是 Java,可以继续 dump 堆分析对象分布。
Load Average 是什么
- 本质上表示一段时间内处于可运行状态和不可中断状态的平均任务数。
- 它不是单纯的 CPU 使用率。
- Load 高可能是 CPU 忙,也可能是 I/O 阻塞严重。
记忆口诀
排查三板斧:先整体,再进程,再线程。
CPU 高找热点,内存高找大户,磁盘满找大文件。
Load 不只看 CPU,还可能是 I/O 卡。
磁盘与文件系统
面试出现频率:⭐⭐⭐⭐
常见考点
| 考点 | 常见问法 | 记忆点 |
|---|---|---|
df 和 du 区别 |
两个都看磁盘,有啥不同? | df 看文件系统整体,du 看目录/文件占用 |
| inode | 磁盘明明还有空间,为什么不能写文件? | inode 用光也不行 |
| 挂载 | 挂载是什么意思? | 把设备接入目录树 |
| 文件系统 | ext4、xfs 了解吗? | 本质是组织磁盘数据的方式 |
df 和 du 的区别
| 命令 | 看什么 | 典型场景 |
|---|---|---|
df -h |
看整个分区剩余空间 | 服务器磁盘满了先看它 |
du -sh * |
看目录/文件具体占用 | 找谁占了空间 |
inode 是什么
- inode 保存文件元数据,如权限、拥有者、大小、时间、数据块位置等。
- 文件名和 inode 是映射关系。
- 小文件太多时,即使磁盘空间没满,也可能 inode 先耗尽。
面试话术
问:磁盘没满,但创建文件失败,可能是什么原因?
可以回答:
- 一个常见原因是 inode 耗尽。
- 可以用
df -i查看 inode 使用情况。 - 这种情况常见于大量小文件、缓存文件、临时文件堆积。
记忆口诀
df看分区,du看目录。
容量看 block,文件数看 inode。
网络与端口排查
面试出现频率:⭐⭐⭐⭐
高频命令
| 命令 | 作用 | 示例 | 记忆点 |
|---|---|---|---|
ping |
看网络是否连通 | ping 127.0.0.1 |
通不通 |
curl |
发 HTTP 请求 | curl -I https://example.com |
服务通不通 |
telnet |
测试端口连通性 | telnet ip 3306 |
端口通不通 |
netstat |
查看网络连接 | netstat -lntp |
谁在监听 |
ss |
更快的连接查看工具 | ss -lntp |
新系统更常用 |
hostname |
查看主机名 | hostname |
机器是谁 |
常见问法
| 考点 | 常见问法 | 重点回答 |
|---|---|---|
| 端口被谁占用 | 怎么查 8080 被哪个进程占了? | `ss -lntp |
| 服务能否访问 | 服务器上服务起了但外部访问不到怎么办? | 看进程、看端口、看防火墙、看安全组 |
ping 通但服务不通 |
为什么会这样? | 网络层通不代表应用层服务正常 |
排查服务访问不到的标准流程
ping看基础网络是否通。ss -lntp看服务进程有没有监听端口。curl或telnet测试本机和远端访问。- 检查防火墙、云安全组、反向代理配置。
- 查看服务日志确认是否报错。
记忆口诀
网络排查四步:先通不通,再看端口,再看防火墙,最后看日志。
Shell 与文本处理
面试出现频率:⭐⭐⭐⭐⭐
核心概念
| 概念 | 含义 | 记忆点 |
|---|---|---|
管道 | |
前一个命令输出作为后一个输入 | 串联命令 |
重定向 > >> < |
控制输入输出位置 | 输出到文件 |
| 标准输入/输出/错误 | stdin、stdout、stderr |
三个标准流 |
高频命令
| 命令 | 作用 | 示例 |
|---|---|---|
grep |
过滤文本 | grep "error" app.log |
awk |
按列处理文本 | awk '{print $1}' |
sed |
文本替换/编辑 | sed 's/old/new/g' file |
sort |
排序 | sort file.txt |
uniq |
去重统计 | `sort file.txt |
wc |
统计行数/单词/字节数 | wc -l app.log |
head |
看前几行 | head -n 20 file |
tail |
看后几行 | tail -f app.log |
高频组合拳
1. 查日志里包含 error 的最后 50 行
1 | tail -n 200 app.log | grep error |
2. 统计访问次数最多的 IP
1 | awk '{print $1}' access.log | sort | uniq -c | sort -nr | head |
3. 实时追踪日志
1 | tail -f app.log |
常见问法
| 问题 | 回答重点 |
|---|---|
| 管道有什么用? | 把多个简单命令串起来完成复杂处理 |
> 和 >> 区别 |
> 覆盖写,>> 追加写 |
grep、awk、sed 区别 |
grep 过滤,awk 按列处理,sed 擅长替换 |
记忆口诀
grep负责筛,awk负责切,sed负责改。
管道负责串,重定向负责存。
日志排错与线上定位
面试出现频率:⭐⭐⭐⭐⭐
常见场景
| 场景 | 首选命令 | 目的 |
|---|---|---|
| 程序报错 | tail -f |
实时看最新日志 |
| 搜关键字 | grep |
快速定位异常 |
| 看大文件 | less |
分页查看避免卡顿 |
| 看访问高峰 | awk + sort + uniq |
聚合分析日志 |
面试常见题
问:线上接口报 500,你会怎么查?
推荐回答:
- 先确认问题是否可复现,明确是单个接口还是整体服务异常。
- 用
tail -f或grep查应用日志,定位报错时间点和异常堆栈。 - 看服务进程、CPU、内存、磁盘、端口是否异常。
- 如果有反向代理或网关,还要继续查 Nginx、网关、数据库等上下游日志。
- 最后结合最近发布记录、配置变更和流量变化综合判断。
记忆口诀
线上先日志,再资源,再网络,再上下游。
高频场景题
1. 如何查看某个端口被哪个进程占用
1 | ss -lntp | grep 8080 |
记忆点:先看端口,再找进程。
2. 如何查看磁盘是被谁占满的
1 | df -h |
记忆点:先看分区,再看目录。
3. 如何在 Linux 中查找包含某关键字的文件内容
1 | grep -rn "keyword" . |
记忆点:内容搜索找 grep。
4. 如何查找文件名包含某关键字的文件
1 | find . -name "*keyword*" |
记忆点:文件搜索找 find。
5. CPU 飙高怎么查
1 | top |
记忆点:先进程,后线程。
6. 某进程卡死了怎么处理
1 | kill pid |
记忆点:先温柔后强制。
考前速背口诀
一、命令分类速背
- 导航类:
pwd、ls、cd - 文件类:
touch、cp、mv、rm - 查找类:
find、grep - 权限类:
chmod、chown - 进程类:
ps、top、kill - 磁盘类:
df、du - 网络类:
ping、curl、ss - 日志类:
tail、less、awk
二、最容易混淆的几组概念
| 概念 | 区别 |
|---|---|
find vs grep |
一个找文件,一个找内容 |
df vs du |
一个看分区,一个看目录 |
| 软链接 vs 硬链接 | 一个看路径,一个看 inode |
| 进程 vs 线程 | 一个分配资源,一个负责调度 |
kill 15 vs kill 9 |
一个优雅终止,一个强制杀死 |
> vs >> |
一个覆盖,一个追加 |
三、最适合面试时脱口而出的口诀
- 一切皆文件,排查先日志。
- 找文件用
find,找内容用grep。 df看整体,du看局部。- CPU 高找热点,内存高找大户。
- 先看进程,再看线程,最后结合日志。
- 权限记三类,数值记 421。
- 先
kill 15,不行再kill 9。 - 网络先连通,端口再监听,最后查防火墙。
四、面试答题万能结构
遇到 Linux 排查题时,尽量按这个顺序回答:
- 先确认现象和范围。
- 再用命令看系统整体状态。
- 然后定位到具体进程、线程、端口或文件。
- 最后结合日志、配置和最近变更给出结论。
总结
如果把 Linux 面试高频知识压缩成最核心的几句话,可以记成下面这组:
- Linux 核心思想是一切皆文件。
- 权限管理记住属主、属组、其他 + 421。
- 文件排查记住**
find找文件,grep找内容**。 - 磁盘排查记住**
df看整体,du看局部,df -i看 inode**。 - 进程排查记住**
ps/top/kill三件套**。 - 性能排查记住先整体,再进程,再线程。
- 网络排查记住连通性、端口监听、防火墙、日志四步走。
把这些背熟后,大部分 Linux 基础面试题都能比较从容地答出来。