按互联网大厂程序员面试高频题型整理 Linux 核心知识点,突出“分类、考点、典型问法、易错点、记忆口诀”,适合面试前快速突击和反复背诵。


目录


高频考点总览

分类 高频考点 面试频率 一句话记忆
基础认知 Linux 特点、内核/用户态、发行版区别 ⭐⭐⭐ 一切皆文件,靠权限和进程管理系统
文件目录 lspwdcdcpmvrmfind、软硬链接 ⭐⭐⭐⭐⭐ 找文件、看文件、改文件、删文件
权限用户 chmodchownchgrpumask、用户组 ⭐⭐⭐⭐⭐ 三类用户,三组权限
进程管理 pstopkill、后台运行、僵尸进程、孤儿进程 ⭐⭐⭐⭐⭐ 进程是资源分配单位
性能排查 CPU 高、内存高、负载高、I/O 高怎么查 ⭐⭐⭐⭐⭐ 先整体,后进程,再线程
磁盘系统 dfdu、inode、文件系统、挂载 ⭐⭐⭐⭐ 容量看块,文件数看 inode
网络排查 netstatsspingcurltelnet ⭐⭐⭐⭐ 先通不通,再看端口和服务
Shell 文本 管道、重定向、grepawksedsortuniq ⭐⭐⭐⭐⭐ 小工具串起来就是生产力
日志排错 taillessgrep、定位异常请求 ⭐⭐⭐⭐⭐ 线上问题先看日志

复习建议

  1. 第一遍先记每个命令“是干什么的”。
  2. 第二遍重点背“命令区别”和“常见面试陷阱”。
  3. 第三遍按故障排查流程串起来说,形成完整面试话术。

Linux 基础认知

面试出现频率:⭐⭐⭐

这部分常考什么

考点 常见问法 记忆点
Linux 有什么特点 为什么服务端常用 Linux? 稳定、安全、可脚本化、适合服务器
内核态和用户态 为什么要区分?系统调用是什么? 应用不能直接碰硬件,要通过内核
发行版 CentOS、Ubuntu 有什么区别? 内核相近,生态和包管理不同
一切皆文件 这句话怎么理解? 设备、目录、普通文件都可统一抽象

面试要点

  • Linux 适合服务端,核心原因是稳定、资源利用率高、可自动化运维、工具链完善。
  • 用户态运行应用程序,内核态负责调度 CPU、内存、磁盘、网络等底层资源。
  • 应用访问系统资源通常要经过系统调用。
  • Linux 强调“组合哲学”,一个命令只做一件事,配合管道完成复杂工作。

记忆口诀

Linux 四个关键词:稳定、安全、脚本化、适合服务端。

用户态写业务,内核态管硬件。


文件与目录操作

面试出现频率:⭐⭐⭐⭐⭐

核心命令速记

命令 作用 高频用法 面试记忆点
pwd 查看当前目录 pwd 我在哪
ls 查看目录内容 ls -lls -als -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 每列含义 第一列是什么意思? 文件类型 + 权限,后面是链接数、属主、属组、大小、时间、文件名
cpmv 区别 为什么 mv 很快? 同盘符下 mv 多数只是改元数据,不一定复制内容
rm -rf 危险在哪 为什么线上慎用? 删除不可恢复,尤其路径变量为空时风险极高
findgrep 区别 都是查找,有什么不同? find 查文件,grep 查内容

软链接和硬链接

类型 本质 特点 面试记忆点
硬链接 多个文件名指向同一个 inode 删除一个不影响另一个,不能跨文件系统,通常不能链目录 像“同一个人多个名字”
软链接 一个独立文件,保存目标路径 可以跨文件系统,可链接目录,原文件删了会失效 像“快捷方式”

高频回答模板

  • find 适合按名称、时间、大小、类型查文件。
  • grep 适合在文件内容里按关键字、正则查文本。
  • 硬链接本质上共享 inode,软链接本质上保存路径。

记忆口诀

找文件用 find,找内容用 grep

硬链接看 inode,软链接看路径。


文件权限与用户管理

面试出现频率:⭐⭐⭐⭐⭐

权限体系

Linux 权限通常分为三类用户:

  • u:文件拥有者
  • g:所属组
  • o:其他用户

三种基础权限:

  • r:读,数值 4
  • w:写,数值 2
  • x:执行,数值 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 最方便 错。方便但危险,线上尽量最小权限原则
新建文件默认就是 666777 还要结合 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 进程是不是还活着?

可以回答:

  1. 先用 ps -ef | grep javapgrep -a java 看进程是否存在。
  2. 再用 top -p pid 看 CPU、内存是否异常。
  3. 如果怀疑端口没监听,再配合 ss -lntpnetstat -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 使用率高怎么排查

回答模板:

  1. top 看哪个进程 CPU 高。
  2. top -H -p pid 看哪个线程高。
  3. 如果是 Java,再把线程 ID 转成 16 进制,去线程栈里定位热点方法。
  4. 结合日志、业务请求量和代码逻辑判断是不是死循环、空转或者频繁重试。

内存使用高怎么排查

回答模板:

  1. 先用 free -h 看系统内存整体情况。
  2. topps aux --sort=-%mem 找到占用内存最大的进程。
  3. 判断是正常缓存、短时峰值,还是持续上涨的泄漏趋势。
  4. 如果是 Java,可以继续 dump 堆分析对象分布。

Load Average 是什么

  • 本质上表示一段时间内处于可运行状态和不可中断状态的平均任务数。
  • 它不是单纯的 CPU 使用率。
  • Load 高可能是 CPU 忙,也可能是 I/O 阻塞严重。

记忆口诀

排查三板斧:先整体,再进程,再线程。

CPU 高找热点,内存高找大户,磁盘满找大文件。

Load 不只看 CPU,还可能是 I/O 卡。


磁盘与文件系统

面试出现频率:⭐⭐⭐⭐

常见考点

考点 常见问法 记忆点
dfdu 区别 两个都看磁盘,有啥不同? df 看文件系统整体,du 看目录/文件占用
inode 磁盘明明还有空间,为什么不能写文件? inode 用光也不行
挂载 挂载是什么意思? 把设备接入目录树
文件系统 ext4、xfs 了解吗? 本质是组织磁盘数据的方式

dfdu 的区别

命令 看什么 典型场景
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 通但服务不通 为什么会这样? 网络层通不代表应用层服务正常

排查服务访问不到的标准流程

  1. ping 看基础网络是否通。
  2. ss -lntp 看服务进程有没有监听端口。
  3. curltelnet 测试本机和远端访问。
  4. 检查防火墙、云安全组、反向代理配置。
  5. 查看服务日志确认是否报错。

记忆口诀

网络排查四步:先通不通,再看端口,再看防火墙,最后看日志。


Shell 与文本处理

面试出现频率:⭐⭐⭐⭐⭐

核心概念

概念 含义 记忆点
管道 | 前一个命令输出作为后一个输入 串联命令
重定向 > >> < 控制输入输出位置 输出到文件
标准输入/输出/错误 stdinstdoutstderr 三个标准流

高频命令

命令 作用 示例
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

常见问法

问题 回答重点
管道有什么用? 把多个简单命令串起来完成复杂处理
>>> 区别 > 覆盖写,>> 追加写
grepawksed 区别 grep 过滤,awk 按列处理,sed 擅长替换

记忆口诀

grep 负责筛,awk 负责切,sed 负责改。

管道负责串,重定向负责存。


日志排错与线上定位

面试出现频率:⭐⭐⭐⭐⭐

常见场景

场景 首选命令 目的
程序报错 tail -f 实时看最新日志
搜关键字 grep 快速定位异常
看大文件 less 分页查看避免卡顿
看访问高峰 awk + sort + uniq 聚合分析日志

面试常见题

问:线上接口报 500,你会怎么查?

推荐回答:

  1. 先确认问题是否可复现,明确是单个接口还是整体服务异常。
  2. tail -fgrep 查应用日志,定位报错时间点和异常堆栈。
  3. 看服务进程、CPU、内存、磁盘、端口是否异常。
  4. 如果有反向代理或网关,还要继续查 Nginx、网关、数据库等上下游日志。
  5. 最后结合最近发布记录、配置变更和流量变化综合判断。

记忆口诀

线上先日志,再资源,再网络,再上下游。


高频场景题

1. 如何查看某个端口被哪个进程占用

1
ss -lntp | grep 8080

记忆点:先看端口,再找进程。

2. 如何查看磁盘是被谁占满的

1
2
df -h
du -sh *

记忆点:先看分区,再看目录。

3. 如何在 Linux 中查找包含某关键字的文件内容

1
grep -rn "keyword" .

记忆点:内容搜索找 grep

4. 如何查找文件名包含某关键字的文件

1
find . -name "*keyword*"

记忆点:文件搜索找 find

5. CPU 飙高怎么查

1
2
top
top -H -p pid

记忆点:先进程,后线程。

6. 某进程卡死了怎么处理

1
2
kill pid
kill -9 pid

记忆点:先温柔后强制。


考前速背口诀

一、命令分类速背

  • 导航类:pwdlscd
  • 文件类:touchcpmvrm
  • 查找类:findgrep
  • 权限类:chmodchown
  • 进程类:pstopkill
  • 磁盘类:dfdu
  • 网络类:pingcurlss
  • 日志类:taillessawk

二、最容易混淆的几组概念

概念 区别
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 排查题时,尽量按这个顺序回答:

  1. 先确认现象和范围。
  2. 再用命令看系统整体状态。
  3. 然后定位到具体进程、线程、端口或文件。
  4. 最后结合日志、配置和最近变更给出结论。

总结

如果把 Linux 面试高频知识压缩成最核心的几句话,可以记成下面这组:

  • Linux 核心思想是一切皆文件
  • 权限管理记住属主、属组、其他 + 421
  • 文件排查记住**find 找文件,grep 找内容**。
  • 磁盘排查记住**df 看整体,du 看局部,df -i 看 inode**。
  • 进程排查记住**ps/top/kill 三件套**。
  • 性能排查记住先整体,再进程,再线程
  • 网络排查记住连通性、端口监听、防火墙、日志四步走。

把这些背熟后,大部分 Linux 基础面试题都能比较从容地答出来。