Linux操作系统核心知识点详尽清单
这份清单系统梳理了Linux操作系统的核心知识点,涵盖基础概念、文件系统、命令行操作、进程内存管理、内核架构、系统启动、网络安全等多个层面。适合运维、开发、内核学习或面试准备,按层次从用户级到内核级组织,便于循序渐进掌握。
1. Linux概述与体系结构
- 定义与特点:开源、免费、多用户多任务类Unix操作系统;“一切皆文件”哲学;稳定、安全、高效;内核(Kernel)是核心,发行版(如Ubuntu、CentOS/RHEL、Debian)提供完整系统。
- 历史:Linus Torvalds 1991年基于Minix开发;继承Unix设计(简单、优雅、一致性、最小惊讶原则)。
- 体系结构层次
- 用户空间(Applications + Shell + Libraries)
- 内核空间(Kernel):进程管理、内存管理、文件系统、设备驱动、网络栈
内核特点:单体内核(Monolithic Kernel),模块化、可动态加载;支持抢占式多任务、对称多处理(SMP)。
2. 文件系统与目录结构(FHS标准)
- 核心理念:一切皆文件(设备、目录、网络接口等均视为文件)。
- inode机制:存储文件元数据(权限、大小、时间戳、数据块指针);不存实际数据;每个文件系统inode数量固定,用尽则无法创建新文件。
- 硬链接 vs 软链接
- 文件类型(ls -l显示):-普通文件、d目录、l软链接、c字符设备、b块设备、p管道、s套接字。
- 目录树结构(Filesystem Hierarchy Standard):
linux文件系统目录层次结构FSH_fsh目录-CSDN博客
关键目录:
- /etc:配置文件(passwd、fstab、hosts等)
- 文件系统类型:ext4(带日志)、XFS、Btrfs、NFS(网络)、tmpfs(内存)。
3. Shell、命令行基础与常用命令
- Shell:Bash默认;支持管道、重定向>、<、2>、通配符* ? []、变量、脚本。
- 核心命令分类
- 文件/目录:ls -la、cd、pwd、mkdir -p、rm -rf、cp -r、mv、touch、cat、more、less、head、tail -f、find、grep -r、tree。
- 压缩/归档:tar -zcvf、tar -xvf、gzip、zip。
- 权限:chmod 755、chown、chgrp、umask。
- 用户/组:useradd、passwd、su -、sudo、groupadd。
- 系统监控:ps aux、top/htop、free -h、df -h、du -sh、uptime、w、who。
- 网络:ping、ifconfig/ip addr、netstat -tuln/ss、curl、wget、scp、ssh。
- 包管理:Yum/DNF(CentOS):yum install、dnf update;APT(Ubuntu):apt install、apt update。
- 其他:echo、alias、history、kill -9、systemctl、journalctl。
4. 用户、权限与安全管理
- 用户/组:UID(0=root)、GID;/etc/passwd、/etc/shadow、/etc/group。
- 权限模型:rwx(4+2+1);所有者/组/其他;特殊权限SUID/SGID/Sticky。
- ACL
- 安全:SELinux/AppArmor、防火墙(firewalld/iptables)、sudoers、ssh密钥登录、fail2ban。
5. 进程、线程与作业管理
- 进程概念:资源分配单位;PCB(task_struct);PID(1=init/systemd)。
- 五态模型
Process in Linux - DataFlair
- 线程
- 调度
- IPC:管道、信号(kill)、消息队列、共享内存、socket、semaphore。
- 命令:ps、top、kill、nice、renice、bg、fg、jobs、nohup、screen/tmux。
- 守护进程
6. 内存管理
- 虚拟内存
- Buddy算法
- Swap
- 缓存
- 监控:free、vmstat、cat /proc/meminfo。
7. 系统启动与初始化(Boot Process)
- 流程:BIOS/UEFI → Bootloader(GRUB) → Kernel → initrd/initramfs → systemd(PID 1) → 目标(target,如multi-user.target) → 服务启动。
How Does Linux Boot Process Work?
关键文件:/boot/grub2/grub.cfg、/etc/fstab、/etc/systemd/system。
8. 内核核心子系统
- 子系统:进程调度、内存管理、VFS(虚拟文件系统)、设备驱动、块层、网络协议栈(TCP/IP)。
- 模块
- 编译与调优:/usr/src/linux、config、make。
- 系统调用
9. 网络配置与工具
- 接口
- 路由
- 防火墙:firewall-cmd、iptables -t filter -A INPUT。
- 服务:Nginx/Apache、sshd、firewalld。
- 监控:netstat、ss、tcpdump、wireshark。
10. 存储与磁盘管理
- 分区
- 文件系统:mkfs.ext4、mount、umount、fsck。
- LVM:逻辑卷管理(pvcreate、vgcreate、lvcreate)。
- RAID
11. 日志、监控、性能调优与故障排除
- 日志:/var/log/、journalctl、rsyslog。
- 监控:sar、iotop、strace、lsof、netstat。
- 调优:sysctl(/etc/sysctl.conf)、ulimit、OOM Killer。
- 常见故障:磁盘满、进程僵尸、内核panic、权限问题、网络不通。
12. 高级知识点(扩展)
- 自动化:Shell脚本(变量、循环、函数)、cron/at、Ansible。
- 容器化:Docker基础(image、container、volume、network)、Podman、Kubernetes入门。
- 备份恢复
- 内核开发基础:C语言、task_struct、module编程、驱动模型。
学习建议:
- 实践:安装CentOS/Ubuntu虚拟机,每天练习命令。
- 资源:Man pages(man command)、官方文档(kernel.org)、RHCSA/Red Hat认证路径。
- 进阶:阅读《Linux内核设计与实现》、《深入理解Linux内核》;编译内核;贡献开源。
这份清单覆盖了90%以上核心场景,结合实际操作与源码阅读可深入掌握。