为什么推荐Linux文件系统思维导图?深度对比与实测
以下是 Linux 文件系统的完整知识体系,以文本思维导图的形式呈现:
Linux 文件系统思维导图
文本
编辑
1Linux 文件系统
2│
3├── 一、目录结构(FHS 标准)
4│ │
5│ ├── /(根目录)
6│ │ └── 整个文件系统的起点,所有目录的父目录
7│ │
8│ ├── /bin
9│ │ └── 基本用户命令(ls、cp、cat 等),所有用户可用
10│ │
11│ ├── /sbin
12│ │ └── 系统管理命令(fdisk、ifconfig 等),通常需 root 权限
13│ │
14│ ├── /usr
15│ │ ├── /usr/bin → 用户应用程序命令
16│ │ ├── /usr/sbin → 非系统关键的管理命令
17│ │ ├── /usr/local → 用户自行编译安装的软件
18│ │ ├── /usr/share → 架构无关的共享数据(文档、图标等)
19│ │ └── /usr/lib → 应用程序的库文件
20│ │
21│ ├── /etc
22│ │ └── 系统配置文件(passwd、fstab、nginx.conf 等)
23│ │
24│ ├── /home
25│ │ └── 普通用户的家目录(/home/username)
26│ │
27│ ├── /root
28│ │ └── root 用户的家目录
29│ │
30│ ├── /var
31│ │ ├── /var/log → 系统日志文件
32│ │ ├── /var/spool → 队列数据(邮件、打印任务等)
33│ │ ├── /var/lib → 应用程序运行时数据(如 MySQL 数据)
34│ │ └── /var/cache → 应用程序缓存
35│ │
36│ ├── /tmp
37│ │ └── 临时文件,重启后可能被清空
38│ │
39│ ├── /dev
40│ │ ├── /dev/sda → 第一块 SATA/SCSI 硬盘
41│ │ ├── /dev/tty → 终端设备
42│ │ └── /dev/null → 黑洞设备(丢弃所有写入数据)
43│ │
44│ ├── /proc
45│ │ ├── /proc/cpuinfo → CPU 信息
46│ │ ├── /proc/meminfo → 内存信息
47│ │ └── /proc/[pid] → 每个进程的运行时信息
48│ │
49│ ├── /sys
50│ │ └── 硬件设备与内核模块信息(类似 /proc,但更结构化)
51│ │
52│ ├── /boot
53│ │ └── 内核文件(vmlinuz)、引导加载程序(GRUB)
54│ │
55│ ├── /lib
56│ │ └── 系统核心共享库(如 libc.so)
57│ │
58│ ├── /opt
59│ │ └── 第三方商业软件安装目录
60│ │
61│ └── /mnt 与 /media
62│ ├── /mnt → 手动挂载临时文件系统
63│ └── /media → 自动挂载可移动设备(U盘、光盘)
64│
65├── 二、文件类型
66│ ├── 普通文件(-)
67│ │ ├── 文本文件(.txt、.conf、.sh)
68│ │ ├── 二进制文件(可执行程序)
69│ │ └── 数据文件(.jpg、.mp3、.db)
70│ │
71│ ├── 目录文件(d)
72│ │ └── 包含文件名与 inode 映射关系的特殊文件
73│ │
74│ ├── 链接文件(l)
75│ │ ├── 硬链接(Hard Link)
76│ │ │ ├── 指向同一个 inode
77│ │ │ ├── 不能跨分区
78│ │ │ └── 不能链接目录
79│ │ └── 软链接(Symbolic Link)
80│ │ ├── 指向文件路径(类似快捷方式)
81│ │ ├── 可以跨分区
82│ │ └── 可以链接目录
83│ │
84│ ├── 设备文件
85│ │ ├── 块设备(b)→ 硬盘、U盘(按块读写)
86│ │ └── 字符设备(c)→ 键盘、串口(按字符流读写)
87│ │
88│ ├── 管道文件(p)
89│ │ └── 用于进程间通信(FIFO)
90│ │
91│ └── 套接字文件(s)
92│ └── 用于网络进程间通信
93│
94├── 三、核心概念
95│ ├── inode(索引节点)
96│ │ ├── 存储文件元数据(大小、权限、时间戳、数据块指针)
97│ │ ├── 不存储文件名(文件名存在目录文件中)
98│ │ ├── 每个文件唯一对应一个 inode 号
99│ │ └── 查看命令:ls -i、stat
100│ │
101│ ├── 数据块(Block)
102│ │ ├── 实际存储文件内容的区域
103│ │ ├── 默认大小通常为 4KB
104│ │ └── 查看命令:dumpe2fs、tune2fs
105│ │
106│ └── 超级块(Superblock)
107│ ├── 记录整个文件系统的元信息
108│ ├── 包含 inode 总数、block 总数、空闲数量等
109│ └── 有备份机制防止损坏
110│
111├── 四、常见文件系统类型
112│ ├── ext4
113│ │ ├── Linux 最经典的日志文件系统
114│ │ ├── 支持最大 1EB 文件系统、16TB 单文件
115│ │ └── 兼容 ext3/ext2
116│ │
117│ ├── XFS
118│ │ ├── RHEL/CentOS 7+ 默认文件系统
119│ │ ├── 擅长处理大文件和高并发 I/O
120│ │ └── 不支持缩减(只能扩容)
121│ │
122│ ├── Btrfs
123│ │ ├── 支持快照、子卷、内建 RAID
124│ │ └── 被称为"下一代文件系统"
125│ │
126│ ├── FAT32 / NTFS / exFAT
127│ │ └── Windows 常用,Linux 通过驱动挂载
128│ │
129│ └── tmpfs
130│ └── 基于内存的临时文件系统(如 /dev/shm)
131│
132├── 五、文件权限管理
133│ ├── 权限模型
134│ │ ├── 所有者(Owner / u)
135│ │ ├── 所属组(Group / g)
136│ │ └── 其他人(Others / o)
137│ │
138│ ├── 基本权限
139│ │ ├── 读(r / 4)
140│ │ ├── 写(w / 2)
141│ │ └── 执行(x / 1)
142│ │
143│ ├── 特殊权限
144│ │ ├── SUID(4)→ 以文件所有者身份执行
145│ │ ├── SGID(2)→ 以文件所属组身份执行 / 目录中继承组
146│ │ └── Sticky Bit(1)→ 仅文件所有者可删除(如 /tmp)
147│ │
148│ └── 常用命令
149│ ├── chmod → 修改权限(chmod 755 file)
150│ ├── chown → 修改所有者(chown user:group file)
151│ └── chgrp → 修改所属组
152│
153├── 六、磁盘与分区管理
154│ ├── 分区工具
155│ │ ├── fdisk → MBR 分区(最大 2TB)
156│ │ ├── gdisk → GPT 分区(支持 >2TB)
157│ │ └── parted → 支持 MBR 和 GPT
158│ │
159│ ├── 格式化(创建文件系统)
160│ │ ├── mkfs.ext4 /dev/sdb1
161│ │ ├── mkfs.xfs /dev/sdb1
162│ │ └── mkfs.vfat /dev/sdb1
163│ │
164│ ├── 挂载与卸载
165│ │ ├── mount /dev/sdb1 /mnt/data
166│ │ ├── umount /mnt/data
167│ │ └── /etc/fstab → 开机自动挂载配置
168│ │
169│ └── 磁盘空间查看
170│ ├── df -h → 查看文件系统整体使用情况
171│ └── du -sh → 查看目录/文件大小
172│
173├── 七、逻辑卷管理(LVM)
174│ ├── 核心概念
175│ │ ├── PV(物理卷)→ 物理磁盘或分区
176│ │ ├── VG(卷组) → 由多个 PV 组成的存储池
177│ │ └── LV(逻辑卷)→ 从 VG 中划分出的"虚拟分区"
178│ │
179│ ├── 核心优势
180│ │ ├── 支持在线动态扩容和缩容
181│ │ ├── 支持快照(Snapshot)
182│ │ └── 跨磁盘管理,灵活分配空间
183│ │
184│ └── 常用命令
185│ ├── pvcreate / vgcreate / lvcreate
186│ ├── lvextend / lvreduce
187│ └── pvs / vgs / lvs
188│
189└── 八、常用文件操作命令
190 ├── 查看
191 │ ├── ls -lah → 列出文件详细信息
192 │ ├── file → 查看文件类型
193 │ └── tree → 以树形结构显示目录
194 │
195 ├── 创建与复制
196 │ ├── touch → 创建空文件 / 更新时间戳
197 │ ├── mkdir -p → 递归创建目录
198 │ ├── cp -r → 复制文件/目录
199 │ └── ln -s → 创建软链接
200 │
201 ├── 移动与删除
202 │ ├── mv → 移动或重命名
203 │ ├── rm -rf → 强制递归删除(慎用!)
204 │ └── shred → 安全擦除文件
205 │
206 ├── 查看内容
207 │ ├── cat → 一次性输出全部内容
208 │ ├── less / more → 分页查看
209 │ ├── head / tail → 查看首/尾 N 行
210 │ └── tail -f → 实时追踪日志
211 │
212 ├── 查找
213 │ ├── find / -name "*.log" -size +100M
214 │ ├── locate → 基于数据库快速查找
215 │ └── which / whereis → 查找命令位置
216 │
217 └── 压缩与归档
218 ├── tar -czf → 打包并 gzip 压缩
219 ├── tar -xzf → 解压
220 ├── zip / unzip
221 └── gzip / gunzip
使用建议:
可以将上述文本结构直接粘贴到 XMind、MindMaster、幕布 等思维导图工具中,它们支持从文本大纲一键生成可视化思维导图。
如果你使用 VS Code,可以安装 Markmap 插件,直接将 Markdown 格式的层级结构渲染为交互式思维导图。
-
Docker安装路线图完全指南:运维工程师必备手册安装前准备1. 确认系统架构Windows:打开「设置 → 系统 → 系统信息」,查看「系统类型」确认是 x64 还是 ARM64macOS:点击左上角苹果图标 → 关于本机,查看「芯片」确认是 Apple Silicon(M1/M2/M3)还是 IntelLinux:终端执行 uname -m,输出 x86_64 为 AMD64,aarch64 为 ARM642. 卸载旧...
-
为什么推荐Traefik?深度对比与实测Traefik(发音为 traffic)是一款专为微服务架构和云原生环境设计的现代化开源 HTTP 反向代理和负载均衡器。与传统的反向代理(如 Nginx)不同,Traefik 的核心优势在于自动化服务发现与动态配置,它能实时监听基础设施的变化并自动更新路由规则,全程无需重启服务。核心...
-
为什么推荐全站加速?深度对比与实测全站加速(通常被称为 WSA、ECDN 或 ICDN)是一种融合了动态加速和静态加速的网站加速解决方案。它专门针对动静态内容混合的网站,能够同时解决静态资源加载慢和动态请求延迟高的问题。核心原理:动静分离与智能路由全站加速的核心在于“动静分离”和“智能路由...
-
SRE面试速成详解:从入门到生产环境实践SRE(站点可靠性工程)面试的核心,在于考察你是否具备“用软件工程思维解决运维问题”的能力。结合你平时对软件开发技术和前沿科技资讯的关注,以下为你梳理了一份高效的 SRE 面试速成指南:核心思维:SRE 到底在做什么?SRE 不是传统的运维,而是“当软件工程师...
-
Jenkins安全加固教程最佳实践:资深运维的私藏技巧文库里暂时没有收录 Jenkins 安全加固的专题文档,视频资源也未检索到。下面我基于 Jenkins 官方文档和 SANS 的加固指南,为你整理一份可直接落地的教程,并在文末附上官方权威文档链接供你收藏。第一道防线:启用并收紧认证授权Jenkins 默认安装后处于“裸奔”状...
-
Nginx详解:从入门到生产环境实践Nginx(发音为 "engine X")是一款开源的高性能 Web 服务器和反向代理服务器。它由俄罗斯程序员 Igor Sysoev 于 2004 年发布,最初是为了解决高并发场景下的 C10K 问题(即单机支持 1 万并发连接)而设计的。凭借极低的资源消耗和卓越的并发处理能力,Nginx 已成为现代互联网架...