跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Linux 高频面试题与详细解析

Linux 操作系统面试涵盖基础概念、文件系统、安全加固、性能排查及常用命令等核心内容。文章解析了 Linux 与 Windows/Unix 的区别、内核组件、进程通信机制、inode 原理及链接类型。针对安全场景,提供了初始化加固步骤、CC/DDoS 防御策略及 SQL 注入防护方案。运维实战部分包含发行版选择、主机规划、访问慢排查流程及性能调优方法。最后整理了文件操作、查看、搜索、压缩解压、系统状态监控等高频命令速查表,适用于运维工程师、后端开发及 DevOps 岗位备考参考。

神经兮兮发布于 2026/3/22更新于 2026/10/2788 浏览
Linux 高频面试题与详细解析

涵盖基础概念、文件系统、安全加固、性能排查、常用命令、实战场景等内容 适合运维工程师、后端开发、DevOps、SRE 等岗位阅读


一、Linux 基础与概述

1. 什么是 Linux?

Linux 是一套免费、开源、类 Unix 的多用户、多任务操作系统,支持多线程和多 CPU。

  • 基于 POSIX 标准
  • 继承 Unix'一切皆文件'和'网络为核心'的设计思想
  • 广泛用于服务器、嵌入式、云计算等领域

Web 项目几乎全部部署在 Linux 上。


2. Windows 和 Linux 的区别?
对比项WindowsLinux
授权商业闭源,需付费开源免费
用途桌面娱乐、办公服务器、开发、高性能计算
界面图形化为主,效果绚丽CLI 为主,GUI 可选
性能资源占用高轻量高效,可深度优化
安全性易受病毒攻击权限控制严格,更安全

普通用户用 Windows,开发者/运维用 Linux。


3. Unix 和 Linux 的区别?
特性UnixLinux
开源性闭源商业软件(如 AIX、Solaris)完全开源(GPL 协议)
跨平台依赖特定硬件(如 Sun SPARC)支持 x86/ARM 等多种架构
成本昂贵免费
用户群体银行、电信等大型企业个人、中小企业、互联网公司
GUI多为纯命令行支持 KDE、GNOME 等桌面环境

Linux 是 Unix 的'平民版',功能强大且免费。


4. 什么是 Linux 内核?

内核是 Linux 系统的核心,负责:

  • 内存管理
  • 进程调度
  • 设备驱动
  • 文件系统管理
  • 系统调用接口

用户不能直接操作硬件,必须通过内核。


5. Linux 的基本组件有哪些?
  • 内核(Kernel):核心控制
  • Shell:命令解释器(如 Bash)
  • GUI(可选):图形界面(如 GNOME)
  • 系统工具:ls, cp, grep 等
  • 应用程序:Nginx、MySQL、Docker 等

6. Linux 体系结构?

分为两大空间:

空间组件
用户空间(User Space)应用程序、C 库(glibc)
内核空间(Kernel Space)系统调用接口、内核、硬件相关代码

分离目的:保护内核安全,防止用户程序直接操作硬件。 切换方式:系统调用 或 硬件中断。


7. BASH 和 DOS 的区别?
特性BASH(Linux)DOS(Windows)
大小写区分大小写不区分
路径分隔符/ 是目录分隔符\ 是目录分隔符
转义字符\ 用于转义/ 用于参数
文件名规则无限制8.3 格式(如 FILENA~1.TXT)

8. Linux 开机启动过程?
  1. BIOS 自检(POST)
  2. 加载 MBR 中的引导程序(GRUB/LILO)
  3. GRUB 加载 Linux 内核
  4. 内核初始化硬件,挂载根文件系统
  5. 启动第一个进程 init(PID=1)
  6. 根据 /etc/inittab 进入运行级别
  7. 启动服务,显示登录界面

现代系统多用 systemd 替代 init。


9. Linux 默认运行级别?
级别说明
0关机
1单用户模式(维护用)
2多用户,无网络
3多用户,命令行(服务器默认)
4未使用
5多用户,图形界面(桌面默认)
6重启

CentOS 7+ 使用 systemctl get-default 查看。


10. Linux 进程间通信(IPC)方式?
  1. 管道(pipe):匿名,父子进程通信
  2. 命名管道(FIFO):有路径,任意进程通信
  3. 信号(signal):如 kill -9
  4. 消息队列(Message Queue)
  5. 共享内存(Shared Memory):最快
  6. 信号量(Semaphore):用于同步
  7. 套接字(Socket):跨网络通信

11. 重要系统日志文件?
  • /var/log/messages:系统综合日志(最重要)
  • /var/log/secure:SSH 登录日志
  • /var/log/cron:定时任务日志
  • /var/log/maillog:邮件日志
  • /var/log/dmesg:内核启动日志

入侵排查首选 /var/log/secure 和 messages。


12. 安装多个桌面环境有帮助吗?
  • 不推荐!
  • 不同桌面(KDE/GNOME/XFCE)可能冲突
  • 某些应用只兼容特定环境
  • 增加资源消耗和安全风险

服务器应禁用 GUI,桌面用户选一个即可。


13. 什么是交换空间(Swap)?

当物理内存(RAM)不足时,系统将部分内存数据临时存放到磁盘的 Swap 分区,以避免 OOM(Out of Memory)。

  • 类似 Windows 的虚拟内存
  • 速度远慢于 RAM,仅作应急

云服务器常关闭 Swap(如阿里云建议)。


14. 什么是 root 账户?
  • 超级管理员账户
  • UID = 0
  • 拥有系统最高权限
  • 可创建/删除用户、修改任何文件、安装软件等

生产环境应禁止 root 直接登录!


15–18. 常见术语解释
术语说明
LILO早期 Linux 引导加载器(现多用 GRUB)
BASHBourne Again Shell,Linux 默认 shell
CLI命令行界面,高效、低资源
GUI图形用户界面,易用但资源消耗大

19–20. 开源与 GNU
  • 开源优势:免费、透明、社区协作、快速迭代
  • GNU 项目:由 RMS 发起,提供自由软件生态(如 GCC、Glibc),Linux 内核 + GNU 工具 = 完整操作系统

正确称呼应为 GNU/Linux。


二、文件系统与磁盘管理

21. Linux 文件系统核心思想?

'一切皆文件'(Everything is a file)

  • 普通文件、目录、设备(/dev/sda)、进程(/proc/123)都视为文件
  • 通过统一接口(open/read/write)访问

22. Linux 目录结构(FHS 标准)
目录作用
/bin基础命令(ls, cp)
/sbin系统管理命令(ifconfig, reboot)
/etc配置文件
/home普通用户家目录
/rootroot 用户家目录
/usr应用程序(类似 Windows Program Files)
/opt第三方软件(如 Tomcat)
/var可变数据(日志、缓存)
/tmp临时文件
/proc虚拟文件系统,反映内核和进程状态
/dev设备文件
/lib系统库文件
/boot启动文件(内核、grub)
/mnt临时挂载点
/lost+found文件系统修复残留文件

23. 什么是 inode?
  • inode(索引节点) 存储文件的元信息:
    • 文件大小、权限、所有者、时间戳
    • 指向数据块的指针(13 个直接/间接块)
  • 文件名 ≠ inode,文件名只是目录项到 inode 的映射

删除文件 = 删除目录项,inode 和数据块在无引用时才释放。


24. 硬链接 vs 软链接(符号链接)
特性硬链接软链接
inode与原文件相同新建 inode
跨分区❌ 不支持✅ 支持
目录链接❌ 仅 root 可创建✅ 支持
原文件删除数据仍存在(链接数 > 0)链接失效(悬空)
命令ln file linkln -s file link

实际多用软链接(灵活、安全)。


25. RAID 是什么?

RAID(独立磁盘冗余阵列):将多个硬盘组合成逻辑卷,提升性能或可靠性。

级别特点
RAID 0条带化,高性能,无冗余
RAID 1镜像,高可靠,容量减半
RAID 5条带 + 奇偶校验,兼顾性能与容错(坏 1 块盘可恢复)
RAID 10RAID 1+0,高性能 + 高可靠,成本高

云环境多用云盘(自动三副本),无需手动 RAID。


三、安全加固

26. Linux 初始化后安全措施?
  1. 禁用 root 登录,创建普通用户 + sudo
  2. 修改 SSH 端口(如 22 → 22222)
  3. 启用密钥登录,禁用密码认证
  4. 配置防火墙(iptables / firewalld)
  5. 关闭 SELinux(或设为 permissive)
  6. 安装 fail2ban 防暴力破解
  7. 限制 IP 访问(仅允许可信 IP 登录)
  8. 最小权限原则:Web 服务用 www 用户运行
  9. 定期更新系统:yum update

27. CC 攻击 vs DDOS 攻击?
攻击类型原理防御
CC 攻击模拟大量用户请求动态页面(如登录接口)WAF、限流、验证码
DDOS 攻击利用僵尸网络耗尽带宽/CPU流量清洗(ISP/云厂商提供)

两者本质都是'资源耗尽型'拒绝服务攻击。


28. SQL 注入是什么?如何防御?
  • 原理:用户输入未过滤,拼接到 SQL 语句中执行
  • 危害:脱库、删表、提权
  • 防御:
    • 使用预编译语句(PreparedStatement)
    • 输入验证 + 白名单
    • Web 层部署 WAF(如 Nginx + ModSecurity)

29. Shell 脚本是什么?
  • 包含一系列命令的文本文件(.sh)
  • 用于自动化任务:备份、监控、部署等
  • 执行方式:bash script.sh 或 chmod +x script.sh && ./script.sh

四、实战与运维

30. 如何选择 Linux 发行版?
场景推荐系统
桌面用户Ubuntu
企业服务器CentOS / Rocky Linux / AlmaLinux
高安全性Debian / FreeBSD
新技术尝鲜Fedora
商业支持RHEL / SUSE

互联网公司主流:CentOS 7/8 → Rocky Linux(替代 CentOS)


31. 如何规划一台 Linux 主机?
  1. 明确用途:Web / DB / 缓存 / 日志?
  2. 硬件选型:CPU/内存/磁盘/网络
  3. 系统安装:最小化安装 + 分区(/, /var, /home 分离)
  4. 安全加固:如上第 26 条
  5. 性能调优:内核参数、文件描述符、TCP 优化等

32. 用户反馈网站访问慢,如何排查?
排查步骤:
  1. 确认问题范围:自己能否复现?是否全用户慢?
  2. 浏览器调试:看是 HTML/CSS/JS/图片/接口慢?
  3. 服务器资源:
    • top / htop:CPU、内存
    • sar / iftop:网络带宽
    • iostat:磁盘 I/O
  4. 应用层:
    • Web 日志(Nginx access.log)
    • 慢查询日志(MySQL slow_query_log)
  5. 外部因素:CDN、DNS、跨运营商
解决方案:
  • 带宽不足 → 升级带宽 or CDN
  • 数据库慢 → 优化 SQL、加缓存(Redis)、读写分离
  • 代码问题 → Profiling、异步化
  • 架构瓶颈 → 微服务、负载均衡

33. Linux 性能调优方法?
  1. 关闭无用服务(systemctl disable xxx)
  2. 禁用 GUI(服务器)
  3. 调整内核参数(/etc/sysctl.conf):
    • net.core.somaxconn
    • vm.swappiness
    • fs.file-max
  4. 文件系统优化:ext4 → xfs,挂载选项 noatime
  5. 网络调优:TCP 缓冲区、TIME_WAIT 复用

五、常用命令速查(高频考点)

34. 核心命令分类
文件操作
cd /path          # 切换目录
pwd               # 显示当前路径
ls -alh           # 列出详细信息(含隐藏文件)
touch file        # 创建空文件
mkdir -p dir      # 递归创建目录
cp -r src dst     # 复制目录
mv old new        # 移动/重命名
rm -rf dir        # 强制删除(慎用!)
文件查看
cat file          # 全文输出(小文件)
more file         # 分页查看(不支持回滚)
less file         # 分页查看(支持上下滚动)
tail -f log       # 实时查看日志
head -n 10 file   # 查看前 10 行
搜索与过滤
grep "error" log  # 搜索关键词
ps aux | grep nginx # 查找进程
find / -name "*.log" # 全局查找文件
压缩解压
tar -zcvf archive.tar.gz dir/  # 压缩
tar -zxvf archive.tar.gz        # 解压
系统状态
top              # 实时进程监控
free -m          # 内存使用
df -h            # 磁盘空间
netstat -tunlp   # 查看端口占用
ss -tuln         # 更快的 netstat 替代
编辑器(vim)
  • i → 插入模式
  • Esc → 命令模式
  • :wq → 保存退出
  • :q! → 强制退出
  • /keyword → 搜索
  • dd → 删除一行
  • yy + p → 复制粘贴
其他实用命令
ping ip                    # 测试连通性
ifconfig / ip a            # 查看 IP
date                       # 查看时间
ntpdate ntp.aliyun.com     # 同步时间
reboot                     # 重启
halt                       # 关机
rz / sz                    # 上传下载文件(需 lrzsz)

目录

  1. 一、Linux 基础与概述
  2. 1. 什么是 Linux?
  3. 2. Windows 和 Linux 的区别?
  4. 3. Unix 和 Linux 的区别?
  5. 4. 什么是 Linux 内核?
  6. 5. Linux 的基本组件有哪些?
  7. 6. Linux 体系结构?
  8. 7. BASH 和 DOS 的区别?
  9. 8. Linux 开机启动过程?
  10. 9. Linux 默认运行级别?
  11. 10. Linux 进程间通信(IPC)方式?
  12. 11. 重要系统日志文件?
  13. 12. 安装多个桌面环境有帮助吗?
  14. 13. 什么是交换空间(Swap)?
  15. 14. 什么是 root 账户?
  16. 15–18. 常见术语解释
  17. 19–20. 开源与 GNU
  18. 二、文件系统与磁盘管理
  19. 21. Linux 文件系统核心思想?
  20. 22. Linux 目录结构(FHS 标准)
  21. 23. 什么是 inode?
  22. 24. 硬链接 vs 软链接(符号链接)
  23. 25. RAID 是什么?
  24. 三、安全加固
  25. 26. Linux 初始化后安全措施?
  26. 27. CC 攻击 vs DDOS 攻击?
  27. 28. SQL 注入是什么?如何防御?
  28. 29. Shell 脚本是什么?
  29. 四、实战与运维
  30. 30. 如何选择 Linux 发行版?
  31. 31. 如何规划一台 Linux 主机?
  32. 32. 用户反馈网站访问慢,如何排查?
  33. 排查步骤:
  34. 解决方案:
  35. 33. Linux 性能调优方法?
  36. 五、常用命令速查(高频考点)
  37. 34. 核心命令分类
  38. 文件操作
  39. 文件查看
  40. 搜索与过滤
  41. 压缩解压
  42. 系统状态
  43. 编辑器(vim)
  44. 其他实用命令

更多推荐文章

查看全部
  • 论文解读:使用人类反馈训练语言模型
  • Python 学习路线与方法总结
  • GitHub Copilot 在 VS Code 上的使用指南:从安装到高阶配置
  • GitHub Copilot AI 编程使用教程
  • C++ 手撕 Sqrt 开根号算法详解与源码实现
  • MaaS 平台与阿里 QWQ 技术:AI 调参实战指南
  • 深度解析Python.NET:C#调用Python函数的5个关键陷阱
  • Java WebFlux 集成百度地图深度检索实践
  • 基于数据流架构扩展 RAG 提升大模型准确度
  • Spring Boot 缓存与性能优化
  • C++ 从零实现 JSON-RPC 框架
  • 基于 WebGIS 的身份证首位数字与六大区域可视化展示
  • Playwright 浏览器指纹伪装实战:WebGL 与 Canvas 维度修改
  • 2G 内存云服务器部署 Spring Boot + MySQL 实践
  • Visual C++ 6.0 在 Windows 11 下的安装与兼容性配置指南
  • RTX50 系显卡与 CUDA、PyTorch、Python 版本对应关系整理
  • Copilot 的 Agent、Ask、Edit、Plan 模式有什么区别
  • Trae AI 辅助:从设计稿自动生成前端代码的实战流程
  • 大型语言模型:概念、技术与应用
  • 火影忍者主题网页设计与实现

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online