Linux 百科全书式教程

Linux 不仅仅是一个操作系统,它是现代计算世界的基石。 从你手中的 Android 手机,到全球 90% 以上的云服务器,从所有 Top500 超级计算机到嵌入式 IoT 设备——Linux 无处不在。本教程旨在提供一份系统、深入、面向中文读者的 Linux 百科全书。


什么是 Linux?

Linux 是一个类 Unix 的开源操作系统内核,由芬兰赫尔辛基大学学生 Linus Torvalds 于 1991 年首次发布。搭配 GNU 项目的用户空间工具,构成了完整的 GNU/Linux 操作系统

在三十余年的发展中,Linux 从一个”个人小爱好”成长为全球软件开发史上最成功的协作项目之一,超过 20000 名开发者向内核贡献代码,驱动着数字世界的基础设施。

为什么每个程序员都应该学习 Linux?

  1. 服务器霸主:Linux 运行着互联网 90% 以上的服务器。无论你做后端开发、DevOps、运维、大数据还是 AI,你必然在 Linux 上部署代码。
  2. 一切皆可定制:不像 macOS 和 Windows 的黑盒化,Linux 让你能从内核模块到桌面环境全程掌控系统行为。
  3. 理解计算本质:学习 Linux 的过程,就是理解进程、内存、文件、网络这些计算机核心概念如何被实现的过程。
  4. 最高的就业相关性:Linux 是云计算(AWS、GCP、Azure、阿里云)的底层,是企业基础设施的标配。

外部资源

必读的 Linux 项目与社区

资源链接说明
Linux 内核源码github.com/torvalds/linux这是全世界最重要的项目之一。Linus Torvalds 维护的 Linux 内核官方主线仓库,包含数千万行 C 代码,驱动全球数十亿台设备
内核档案馆kernel.orgLinux 内核的官方发布站点,所有内核版本的源码均可在此获取
Arch Wikiwiki.archlinux.orgArch Wiki 几乎可以找到所有 Linux 问题的解决方案,不仅限于 Arch 用户。这是 Linux 圈公认的最佳技术文档,涵盖从内核参数到桌面配置的全部领域

推荐阅读

  • The Linux Programming Interface (Michael Kerrisk, No Starch Press) — Linux 系统编程权威参考,man-pages 维护者所著
  • Advanced Programming in the UNIX Environment (W. Richard Stevens) — Unix 系统编程的经典之作
  • Understanding the Linux Kernel (O’Reilly) — 深入理解内核机制的参考书
  • How Linux Works (Brian Ward) — 系统管理员视角的 Linux 内幕

教程结构总览

本教程按知识领域划分为八个部分,共 72 章(主教程,含第 0 章)+ 发行版专项内容 + WSL 专项目录。

第一部分:入门篇(00-06)

从第一次打开 Linux 到建立命令行基本功。刚装好系统的”急救手册”见第 0 章。

章节标题核心内容
00-Linux快速上手Linux 快速上手新手急救手册:中文输入法、中文字体、联网、显卡/WiFi 驱动、屏幕显示、软件安装、常见报错速查
01-Linux概述与历史Linux 概述与历史Unix 遗产、Linus 的故事、开源运动、GNU GPL 协议
02-多发行版安装指南多发行版安装指南Debian/Arch/Fedora/NixOS 安装流程、分区、引导
03-FHS文件系统层次标准FHS 文件系统层次标准/bin, /etc, /var, /usr 等目录的结构与意义
04-文件与目录管理文件与目录管理ls, cp, mv, rm, mkdir, find, 通配符、权限初步
05-文本编辑器(Vim+Nano)文本编辑器 (Vim + Nano)Vim 模态编辑、Nano 新手友好、配置文件编辑实践
06-命令行基础与Shell入门命令行基础与 Shell 入门Bash 基础、环境变量、别名、补全、作业控制

第二部分:系统配置与运维基础(07-17)

环境变量操作全书、虚拟机实战与系统管理的核心技能。

章节标题核心内容
07-PATH深入与环境变量全书PATH 深入与环境变量全书export 本质、PATH 搜索机制与 hash 缓存、配置文件加载链、开发工具链/系统行为/密钥安全/服务容器变量实战、调试排查
08-用户与权限管理用户与权限管理UID/GID、文件权限、ACL、sudo、PAM 认证
09-虚拟机配置与打包虚拟机配置与打包Type-1/Type-2 全景、VirtualBox/VMware/KVM/Vagrant 配置快照克隆、OVA/OVF 打包分发、Windows/macOS/Linux 三大宿主机方案、自定义 ISO(live-build/archiso/mkosi)
10-进程管理进程管理ps, top, htop, kill, signal, nice, 前后台切换
11-systemd服务管理systemd 服务管理Unit 文件、timer、socket、journalctl、systemd 启动流程
12-存储管理与磁盘操作存储管理与磁盘操作分区(fdisk/gdisk)、格式化、挂载、fstab、LVM
13-网络配置基础网络配置基础IP 地址、路由、DNS、NetworkManager、systemd-networkd
14-软件包管理通识软件包管理通识包管理概念、各发行版对比、GPG 验证、AUR/PPA/Copr
15-计划任务与自动化计划任务与自动化cron、systemd timer、at、anacron
16-日志系统日志系统journald、rsyslog、logrotate、集中日志分析
17-备份与恢复备份与恢复rsync、tar、dd、BorgBackup、快照恢复、灾难恢复策略

第三部分:Shell 编程与自动化(16-20)

从入门到精通 Shell 脚本。

章节标题核心内容
18-Bash编程基础Bash 编程基础变量、条件、循环、函数、参数、退出码
19-Bash编程进阶Bash 编程进阶数组、关联数组、trap、set 选项、调试、子Shell
20-正则与文本处理三剑客正则与文本处理三剑客grep/sed/awk 深度,正则表达式语法
21-IO重定向与管道深入I/O 重定向与管道深入stdin/stdout/stderr、Here Document、进程替换、命名管道
22-Shell脚本实战Shell 脚本实战日志分析脚本、监控脚本、备份脚本、批量管理

第四部分:服务与安全(23-28)

对外提供服务和保护系统的完整技能。

章节标题核心内容
23-SSH远程管理SSH 远程管理SSH 密钥、配置、隧道、端口转发、sshd 加固、密钥迁移与设备更换、端到端模拟流程、意外风险应急处置
24-防火墙与安全防火墙与安全iptables/nftables/firewalld/ufw、DDoS 防护、Fail2ban
25-DNS与域名系统DNS 与域名系统递归/权威 DNS、BIND、CoreDNS、DNS-over-HTTPS
26-Web服务器(Nginx+Apache)Web 服务器 (Nginx + Apache)虚拟主机、SSL/TLS、反向代理、PHP-FPM、静态优化
27-数据库管理数据库管理PostgreSQL/MySQL 安装、用户权限、备份恢复、基础调优
28-系统安全加固与审计系统安全加固与审计最小权限、审计日志、入侵检测、MFA、内核参数加固

第五部分:操作系统原理(29-37)

计算机科学理论基础——理解操作系统本身。

章节标题核心内容
29-操作系统概述与结构操作系统概述与结构OS 层次结构、系统调用机制、内核架构、中断处理
30-进程与线程进程与线程PCB、上下文切换、多线程模型、用户线程 vs 内核线程
31-进程同步与互斥进程同步与互斥临界区、信号量、互斥锁、条件变量、管程
32-死锁死锁死锁四条件、预防、避免(银行家算法)、检测与解除
33-处理机调度处理机调度调度算法(FCFS、SJF、RR、多级队列)、CFS、实时调度
34-存储管理存储管理分区分配、段式存储、页式存储、内部/外部碎片
35-虚拟存储与页面置换虚拟存储与页面置换请求调页、FIFO/LRU/Clock 置换算法、工作集
36-文件系统设计文件系统设计文件结构、目录实现、空闲空间管理、一致性检查
37-I-O设备管理I/O 设备管理I/O 控制方式、缓冲/缓存、SPOOLing、磁盘调度

第六部分:系统架构与高级主题(38-55)

从内核到用户态,从存储到追踪——深入 Linux 现代特性。

章节标题核心内容
38-Linux内核基础与模块Linux 内核基础与模块内核模块加载/卸载、编译内核、内核参数、sysctl
39-系统调优与性能分析系统调优与性能分析perf、火焰图、sar、vmstat、perf top
40-引导流程与GRUB引导流程与 GRUBBIOS/UEFI、Bootloader、内核启动参数、initramfs
41-内存管理深入内存管理深入Buddy 算法、Slab 分配器、页面回收、内存压缩、HugePages
42-文件系统深入文件系统深入VFS 层、ext4、XFS、Btrfs、ZFS、超级块、日志
43-硬件驱动与设备管理硬件驱动与设备管理设备树、udev、sysfs、驱动加载机制
44-压缩与归档工具大全压缩与归档工具大全tar, gz, xz, zstd, 7z, rar, zip 详解
45-系统错误排查与日志分析系统错误排查与日志分析故障排查方法论、日志解析、Troubleshooting
46-容器技术容器技术Docker/Podman、Dockerfile、Compose、注册表、BuildKit
47-容器编排与K8s入门容器编排与 K8s 入门Pod, Deployment, Service, Ingress, Helm (基础)
48-不可变系统不可变系统Fedora Silverblue, openSUSE MicroOS, NixOS, SteamOS
49-FUSE与虚拟文件系统FUSE 与虚拟文件系统用户态文件系统、S3FS、SSHFS、Rclone、自定义 VFS
50-BPF与系统追踪BPF 与系统追踪eBPF 架构、bpftrace、可观测性
51-Wayland深入指南Wayland 深入指南协议、合成器、客户端、XWayland
52-PipeWire与音频系统PipeWire 与音频系统替代 PulseAudio/JACK,统一多媒体框架
53-io_uring与异步IOio_uring 与异步 I/O高性能异步 I/O 接口,超越 AIO、epoll
54-Device Mapper与存储栈Device Mapper 与存储栈dm-crypt (LUKS), dm-thin (LVM), dm-verity, dm-integrity
55-终端常用工具大全终端常用工具大全fd, ripgrep, bat, tldr, jq, fzf, zoxide, lsd, btop, tmux

第七部分:DevOps 与运维实战(56-65)

企业级基础设施自动化与运维实战。

章节标题核心内容
56-服务器初始化与基线配置服务器初始化与基线配置cloud-init, Kickstart, Preseed, 安全基线
57-Nginx反向代理与负载均衡Nginx 反向代理与负载均衡upstream、WAF、限流、缓存、HTTP/2、HTTP/3
58-数据库运维(主从+备份+优化)数据库运维(主从 + 备份 + 优化)主从复制、连接池、慢查询、备份策略、高可用
59-DNS服务器搭建DNS 服务器搭建BIND 权威 + 递归、区域传输、DNSSEC
60-监控系统(Prometheus+Grafana)监控系统 (Prometheus + Grafana)指标采集、PromQL、仪表板、告警
61-CI-CD基础CI/CD 基础GitLab CI、GitHub Actions、Jenkins 入门
62-Ansible与配置管理Ansible 与配置管理清单、Playbook、角色、变量编排
63-高可用与集群高可用与集群Keepalived + HAProxy、故障转移、PG 高可用集群
64-自定义系统打包与分发自定义系统打包与分发制作自定义 ISO、PXE 批量部署
65-包管理器崩溃恢复与驱动管理通用指南包管理器崩溃恢复与驱动管理跨发行版的包管理器恢复、ICU 库修复、DKMS 故障处理、滚动更新预防

第八部分:存储与虚拟化深入(66-71)

从分区表到文件系统,从逻辑卷到虚拟化底座——存储与虚拟化专题。

章节标题核心内容
66-Linux分区结构全解Linux 分区结构全解分区表、MBR/GPT、引导分区、对齐、分区方案
67-分区工具实战分区工具实战fdisk/gdisk/parted、分区创建与救援、备份恢复分区表
68-LVM逻辑卷管理LVM 逻辑卷管理PV/VG/LV、在线扩容缩容、快照、thin provisioning
69-Btrfs从入门到生产Btrfs 从入门到生产子卷、快照、RAID、压缩、scrub、生产实践
70-ZFS实战指南ZFS 实战指南存储池、数据集、快照、发送接收、ARC 调优
71-libvirt与QEMU-KVMlibvirt 与 QEMU/KVM三层架构、分发行版安装、virsh/存储池/网络/快照/迁移、裸 QEMU 对比

发行版专项内容

按发行版划分的深度内容,涵盖各发行版的独有特性和最佳实践。

发行版目录内容
Arch LinuxArch 安装安装指南、pacman 高级、AUR 打包、systemd-homed、深度玩法、自定义系统打包、DIY 平板指南
[[distro/arch/desktop/Arch 桌面]]
Debian / Ubuntudistro/debian/apt 包管理安装与服务器配置dpkg 与 deb 打包netplan 与 NetworkManager
RHEL / Fedoradistro/redhat/yum 包管理安装与配置RPM 打包与仓库SELinux 深入firewalld 与 nmcli
NixOSdistro/nix/安装与声明式配置Nix 语言与 flakenixpkgs 与包管理

WSL 专项内容(Windows 用户的 Linux 方案)

Windows Subsystem for Linux 全生命周期深度指南。

章节标题核心内容
01-WSL 入门与安装WSL1/2 架构、一键安装、发行版管理、.wslconfig 与 wsl.conf 双配置体系、首日配置与互访
02-WSL2 架构与网络utility VM 本质、ext4 与 /mnt/c 性能铁律、VHD 压缩、NAT/mirrored 网络模式、portproxy 外部访问、VPN 故障
03-systemd 与系统集成systemd 启用、WSLg 图形子系统架构与排障、音频、NVIDIA GPU 直通与 CUDA 冒烟测试
04-Docker 与容器集成Docker Desktop vs 原生 Engine 双路线、compose v2、Dev Containers 三层嵌套、k3s/kind/minikube 三选一
05-VS Code 与 SSH 开发Remote-WSL 架构、扩展双栏、GCM 凭据复用、WSL sshd + portproxy 外网访问全链路
06-开发环境实战Node/Python/Go/Rust/Java/C++ 工具链落位、“代码放 ~ 不放 /mnt/c” 铁律、数据库开发、混编联调
07-WSL 与虚拟机协作WSL/VM/双系统决策树、Hyper-V/VirtualBox/VMware 共存机制、迁移策略、四维性能对比
08-WSL 运维与排障生命周期运维、VHD 膨胀压缩、内存调优、安全加固清单、现象→诊断→修复排障手册

学习路径推荐

不同目标的读者可以使用不同的学习路径,跳过不相关的内容:

路径目标推荐章节顺序
Linux 入门者从零到能够日常使用 Linux00 → 01-06 → 07-17 → 18-22 → 23-28
系统管理员管理服务器和基础架构00 → 01-06 → 07-17 → 18-22 → 38-45 → 56-64
深入理论理解操作系统原理29-37 → 38-45 → 46-55
全栈 DevOps容器、Tracing、CI/CD01-06 → 23-28 → 46-55 → 56-64
Windows 开发者用 WSL 搭建 Linux 环境00 → 07 → WSL/01-08 → 46-47
Arch 用户深度掌握 Arch Linux全部主教程 + [[distro/arch/
Debian/Ubuntu 用户深度掌握 Debian 体系全部主教程 + [[distro/debian/
RHEL/Fedora 用户深度掌握红帽体系全部主教程 + [[distro/redhat/
NixOS 用户深度掌握 Nix 声明式配置全部主教程 + [[distro/nix/


Linux 发行版族谱

理解 Linux 发行版之间的血缘关系,有助于理解其设计理念和技术选型。

┌──────────────────────────────────────────────────┐
│ Linux Kernel │
├──────────────────────────────────────────────────┤
│ ┌─────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ Debian │ │ Red Hat │ │ 独立/其他 │ │
│ ├─────────┤ ├──────────┤ ├──────────────────┤ │
│ │ Ubuntu │ │ Fedora │ │ Arch Linux │ │
│ │ Linux │ │ RHEL │ │ openSUSE │ │
│ │ Mint │ │ CentOS │ │ Gentoo │ │
│ │ Kali │ │ Rocky │ │ Alpine │ │
│ │ Pop!_OS │ │ Alma │ │ NixOS │ │
│ │ Raspbian│ │ Amazon │ │ Void Linux │ │
│ └─────────┘ └──────────┘ └──────────────────┘ │
│ │
│ 包管理: dpkg/apt 包管理: rpm/dnf 各自不同 │
│ 配置: 分散式 配置: 集中式 高度定制 │
└──────────────────────────────────────────────────┘

三大主流体系的区别

维度Debian 系Red Hat 系Arch 系
包格式.deb.rpm.pkg.tar.zst
包管理器apt / dpkgdnf / rpmpacman
发布模式定点发布 + LTS定点发布 (Fedora) / 企业版 (RHEL)滚动发布
默认防火墙ufw(Ubuntu)firewalld手动配置
SELinux/AppArmorAppArmorSELinux无默认 MAC
配置风格分散(灵活)集中(/etc/sysconfig/极简(上游默认)
代表场景开发桌面、云服务器企业服务器、认证环境个人定制、学习研究
包数量~60,000 (Debian)~60,000 (Fedora)~15,000 (official) + ~80,000 (AUR)

Linux 系统的主要应用场景

场景使用比例代表技术栈
云计算 / 服务器90%+ 市场份额KVM, Docker/K8s, Nginx, HAProxy
嵌入式 / IoT绝对主导Yocto, Buildroot, OpenWrt, Android (Android 基于 Linux 内核)
超级计算机100% (Top500)Slurm, MPI, Lustre, InfiniBand
移动设备Android 全球数十亿Android 内核基于 Linux
桌面~3-4% (Steam Survey)Wayland/X11, KDE/GNOME, Flatpak/Snap
网络设备路由器、交换机、防火墙iptables/nftables, FRR, Quagga, DPDK
汽车 / 工业快速增长AGL (Automotive Grade Linux), ROS (机器人)
AI / ML 基础设施CUDA 在 Linux 上最优PyTorch, TensorFlow, CUDA, ROCm, GPU 驱动

核心概念速览

在学习本教程之前,理解以下核心概念有助于建立整体的 Linux 认知框架:

启动过程

固件 (UEFI/BIOS) → Bootloader (GRUB/systemd-boot) → 内核 → initramfs → init (systemd) → 用户空间

详见 40-引导流程与GRUB

系统层次

应用程序 (Nginx, Docker, GNOME...)
 ↓ 调用
用户空间库 (glibc, libssl, libcurl...)
 ↓ 系统调用
Linux 内核 (进程调度、内存管理、网络栈、文件系统、驱动)
 ↓ 控制
硬件 (CPU、内存、磁盘、网卡、GPU)

详见 29-操作系统概述与结构38-Linux内核基础与模块

一切皆文件

Linux 的核心理念之一:磁盘上的文件是文件,目录是文件,进程信息是文件(/proc),设备是文件(/dev),网络套接字是文件,内核参数也是文件(/sys)。

# 查看内核版本
cat /proc/version
 
# 查看 CPU 信息
cat /proc/cpuinfo
 
# 修改内核参数
echo 1 > /proc/sys/net/ipv4/ip_forward
 
# 写入到磁盘(也是文件操作)
echo "hello" > /tmp/test.txt

详见 49-FUSE与虚拟文件系统42-文件系统深入


基础命令按使用频率排序

以下是 Linux 日常使用中按频率大致排序的命令。熟练使用前 30 个即可应对 80% 的日常操作。

第一梯队(每天必用)

命令用途示例
ls列出目录内容ls -lah
cd切换目录cd /var/log
pwd显示当前路径pwd
cat查看文件内容cat /etc/os-release
less分页查看文件less /var/log/syslog
grep搜索文本grep -rn "error" .
find搜索文件find / -name "*.conf"
echo输出文本echo $PATH
sudo提权执行sudo systemctl restart nginx
man帮助手册man ls

第二梯队(每周会用)

命令用途示例
cp复制cp -r src dst
mv移动/重命名mv old new
rm删除rm -rf /tmp/junk
mkdir创建目录mkdir -p a/b/c
touch创建空文件/更新时间戳touch file.txt
chmod修改权限chmod +x script.sh
chown修改所有者chown user:group file
ln创建链接ln -s /usr/bin/python3 python
tar归档/解压tar -xzvf archive.tar.gz
curlHTTP 请求curl -I https://example.com

第三梯队(需要时查阅)

命令用途
awk文本列处理
sed流式文本替换
sort / uniq排序去重
wc字数/行数统计
head / tail文件头尾查看
diff文件对比
rsync文件同步
scp远程复制
dd块级读写
xargs参数传递

详见 06-命令行基础与Shell入门20-正则与文本处理三剑客55-终端常用工具大全


编辑器选择建议

编辑器适用人群学习投入生产力回报
Nano绝对新手5 分钟立即可用
Vim服务器管理员1-2 周极高(SSH 必备)
Neovim追求现代体验的 Vim 用户1-2 周极高
VS Code开发者(有 GUI)数小时极高
Emacs哲学探索者数月”一生之编辑器”
Helix想要开箱即用的模态编辑者1-3 天

无论选择哪个编辑器,至少掌握一种终端编辑器——当你在 SSH 到远程服务器时,GUI 编辑器帮不了你。

详见 05-文本编辑器(Vim+Nano)
neovim可以参考我们的项目


桌面环境选型

桌面环境资源消耗定制性适合
GNOME中等偏高低(需扩展)想要开箱即用的用户
KDE Plasma中等极高追求自定义的用户
Xfce老旧硬件或追求简洁
i3 / Sway极低极高平铺式窗口管理的爱好者
Hyprland中等极高Wayland 下的美观平铺体验
Niri滚动式平铺窗口的独特体验

详见 51-Wayland深入指南Hyprland 配置Niri 配置


常见疑问与误区

误区一:“Linux 只有命令行,太不友好了”

现代 Linux 桌面(GNOME、KDE Plasma)的易用性不亚于 macOS 和 Windows。命令行不是必需,而是高级武器——当 GUI 无法解决问题时(比如批处理、远程管理、自动化),命令行展现出无与伦比的威力。

误区二:“应该先确定’最好’的发行版再开始学”

不同发行版之间 90% 的 Linux 知识是互通的。选择一个主流发行版(Debian/Ubuntu、Fedora 或 Arch)开始动手远比花时间纠结选择重要。当你真正理解 Linux 后,切换发行版不过是换一层”皮肤”。

误区三:“Linux 没有专业软件”

这是一个过时的印象。今天 Linux 拥有:

  • 浏览器:Chrome, Firefox, Edge, Brave
  • IDE:VS Code, JetBrains 全家桶, Neovim, Emacs
  • 美术:Blender(3D), GIMP(图像), Kdenlive(视频), Inkscape(矢量)
  • 办公:LibreOffice, OnlyOffice, 网页版 Office/Google Docs

误区四:“我需要记住所有命令”

没有人能记住所有命令。 Linux 专家的核心能力不是记忆,而是:

  1. mantldr、搜索引擎快速找到答案
  2. 理解核心概念,从而推断陌生工具的使用方法
  3. 善用 Tab 补全和 Ctrl+R 历史搜索
  4. 阅读错误信息——它们是线索而非敌人

误区五:“Linux 不会中病毒”

Linux 不是绝对安全的。虽然其安全架构(权限分离、包管理签名、SELinux/AppArmor)强于传统 Windows,但:

  • Linux 服务器是挖矿病毒和僵尸网络的主要目标
  • 供应链攻击(如 xz 后门事件)真实存在
  • 容器逃逸和提权漏洞不断被发现
  • 不安全的配置是人最多的安全漏洞来源

详见 28-系统安全加固与审计24-防火墙与安全


如何高效使用本教程

推荐工具:Obsidian

本教程中的所有章节均使用 Obsidian 风格的 双向链接 相互引用。在 Obsidian 中打开本仓库文件夹作为 Vault,即可获得:

  • 关系图谱(Graph View):可视化所有章节之间的引用关系,发现知识关联
  • 反向链接(Backlinks):查看哪些章节引用了当前页面
  • 快速搜索:Cmd/Ctrl + O 快速跳转到任意章节
  • 标签系统:可按 #入门 #原理 #运维 #安全 等标签筛选内容

其他 Markdown 阅读器

本教程也完全兼容任何支持 Markdown 的阅读器:

  • VS Code + Markdown Preview Enhanced 插件
  • Typora
  • GitHub 直接在线阅读
  • 任意静态网站生成器(MkDocs、mdBook、Docusaurus 等)

阅读建议

  1. 按照上方的学习路径选择适合自己的阅读顺序
  2. 遇到不熟悉的概念时,点击(或查找)文中的 双向链接 跳转到相关章节深入
  3. 代码示例建议在虚拟机或实验环境中亲自运行一遍
  4. 善用 发行版命令速查表术语对照表 作为日常参考
  5. 每读完一章,在 Obsidian 的关系图谱中查看该章节的连接,巩固理解

贡献

本教程欢迎任何形式的贡献,包括但不限于:

  • 纠错:错别字、技术错误、过时的命令示例
  • 补充:缺失的内容、新工具、新发行版支持
  • 翻译修正:术语翻译的准确性和一致性
  • 结构调整:章节顺序、内容拆分/合并的建议
  • 实战案例:真实场景下的应用示例和故障排查记录

贡献规范

  1. 保持与现有内容一致的写作风格:中文为主,英文术语保留并标注译名
  2. 使用 Obsidian 风格的 双向链接 引用其他章节,增强知识网络
  3. 代码示例优先使用 bash 代码块并经过实际测试
  4. 表格和列表组织信息,保持可读性
  5. 引用外部资源时注明 URL

资源文件

文件说明
发行版命令速查表跨发行版命令对照大全,涵盖 apt/dnf/pacman/zypper/apk/nix/emerge 的日常操作
术语对照表Linux 核心术语的英汉对照和简明解释,按类别组织

文件结构说明

linux/
├── README.md ← 你正在看的主入口
├── 00-*.md ~ 71-*.md ← 72 章主教程(按编号排列)
│   ├── 00 ← Linux 快速上手(新手急救手册)
│   ├── 07 ← PATH 深入与环境变量全书
│   ├── 09 ← 虚拟机配置与打包
│   └── 71 ← libvirt 与 QEMU/KVM 虚拟化完全指南
├── resources/ ← 辅助资源
│   ├── 环境变量速查.md ← 环境变量配套速查卡
│   ├── 发行版命令速查表.md ← 跨发行版命令对照
│   └── 术语对照表.md ← 英汉术语速查
├── WSL/ ← WSL 专项内容(8 章)
│   └── 01-安装 ~ 08-运维排障
└── distro/ ← 发行版专项内容
 ├── arch/ ← Arch Linux 系列(含桌面子目录)
 │ ├── 01-~06- ← Arch 核心教程
 │ └── desktop/ ← Arch 桌面环境配置集
 ├── debian/ ← Debian / Ubuntu 系列
 ├── redhat/ ← RHEL / Fedora 系列
 └── nix/ ← NixOS 系列

Linux 技术栈就业岗位参考

岗位方向核心技能推荐章节
后端开发Linux 基础操作、Shell 脚本、服务部署、数据库管理00-17, 23-28
DevOps 工程师CI/CD、容器/K8s、配置管理、监控、云服务01-17, 46-47, 56-64
系统管理员用户管理、安全加固、存储、网络、自动化运维全部基础 + 38-45
SRE / 平台工程性能调优、追踪、故障排查、自动化、高可用38-55, 56-64
嵌入式 Linux内核模块、设备驱动、交叉编译、启动流程38-45, Buildroot/Yocto
安全工程师防火墙、SELinux、审计、渗透测试24, 28, distro/redhat/04, distro/redhat/05
内核开发者C 语言、内核架构、内存管理、调度器29-45

重要信号速查

10-进程管理 中会详细学习信号机制,这里先给出常用信号的速查表:

信号编号信号名含义可否捕获/忽略
1SIGHUP挂起(终端断开)
2SIGINT中断(Ctrl+C)
3SIGQUIT退出(Ctrl+\),产生 core dump
9SIGKILL强制终止,不可捕获
15SIGTERM优雅终止(默认 kill
17SIGCHLD子进程状态变更
18SIGCONT继续执行停止的进程
19SIGSTOP暂停进程,不可捕获
20SIGTSTP终端暂停(Ctrl+Z)
# 常用信号操作
kill -15 <pid> # 优雅终止(默认)
kill -9 <pid> # 强制杀死(最后手段)
kill -HUP <pid> # 重载配置(守护进程约定)
kill -STOP <pid> # 暂停进程
kill -CONT <pid> # 恢复进程

重要的 man 手册页码

[man]惯例将手册分为 9 个节(section)。知道在哪里查找信息是高效使用 Linux 的关键:

节号内容示例
1用户命令man 1 ls
2系统调用man 2 open, man 2 fork
3C 库函数man 3 printf, man 3 malloc
4设备文件man 4 tty, man 4 null
5配置文件格式man 5 sshd_config, man 5 fstab
6游戏man 6 fortune(如果安装了的话)
7杂项(概述、约定)man 7 signal, man 7 socket
8系统管理命令man 8 iptables, man 8 systemctl
9内核例程man 9 printk(需内核文档包)
# 当 man 返回多个匹配时
man -f signal # 等同于 whatis signal,列出所有节中的匹配
man 2 signal # 直接查看第 2 节(系统调用)的 signal
man 7 signal # 查看第 7 节(概述)的 signal

基于 Linux 内核的著名项目

Linux 内核的影响力远超服务器领域:

项目说明用户规模
Android基于 Linux 内核的移动操作系统全球 30 亿+ 活跃设备
ChromeOSGoogle 的轻量级桌面操作系统教育市场主流
AWS, GCP, Azure三大云服务商底层均大量使用 Linux互联网基础设施
OpenWrt路由器固件系统数百万台路由器
Steam Deck / SteamOSValve 的手持游戏机操作系统基于 Arch Linux
Tesla 车载系统汽车中控运行 Linux数百万辆汽车
Starlink 卫星SpaceX 星链卫星运行 Linux数千颗在轨卫星

许可证

本教程文档采用 CC BY-SA 4.0 协议发布。代码示例遵循相同的共享条款。


“Software is like sex: it’s better when it’s free.” — Linus Torvalds

“Talk is cheap. Show me the code.” — Linus Torvalds