为什么推荐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 格式的层级结构渲染为交互式思维导图。
-
【实战】Brotli推荐,一步步带你搞定Brotli 是由 Google 开发的现代文本压缩算法,相比传统的 Gzip,它通常能将 HTML、CSS、JavaScript 等文本资源的体积再减小 15%~30%,同时解压速度更快。结合你之前关注的 Web 开发和服务器配置,以下是关于 Brotli 的落地推荐与实战指南:核心推荐:哪些资源该用 Brotli?Brotli...
-
为什么推荐Linux文件系统思维导图?深度对比与实测以下是 Linux 文件系统的完整知识体系,以文本思维导图的形式呈现:Linux 文件系统思维导图文本编辑1Linux 文件系统2│3├── 一、目录结构(FHS 标准)4│ │5│ ├── /(根目录)6│ │ └── 整个文件系统的起点,所有目录的父目录7│ │8│ ├── /bin9│ │ └──...
-
一文掌握Jenkins备份教程,效率提升300%Jenkins 备份的核心原则非常简单:Jenkins 的所有数据几乎都集中在 JENKINS_HOME 目录中,只要备份好这个目录,就可以完整恢复整个 Jenkins 实例。下面从确认目录、备份方式到恢复验证,给你一套完整的实操教程。确认 JENKINS_HOME 位置在开始备份前,先确认你的 Jenkins 主...
-
【收藏级】S3全套配置模板与脚本“S3”是一个在不同领域都有广泛使用的缩写。结合你平时的技术关注点,这里为你梳理了 S3 在云计算、AI芯片、新能源汽车等方向的最新含义:云计算:Amazon S3 (对象存储)这是 S3 最经典的含义,全称为 Amazon Simple Storage Service。核心定位:它是 AWS 提供的一种对象存...
-
【实战】内存高怎么办,一步步带你搞定针对 IK 分词器导致的内存占用过高问题,可以从词典管理、JVM 调优以及架构策略三个层面进行系统性排查和优化:词典与缓存优化控制词典规模:IK 分词器在初始化时会将主词典、扩展词典及停用词全部加载至 JVM 堆内存中。建议定期清理无效词条,控制总词条数。...
-
为什么推荐Zsh优化方案?深度对比与实测Zsh 启动慢、卡顿通常是因为加载了过多的插件、复杂的主题或重复的环境变量。结合你平时做网站开发和服务器运维的背景,这里为你梳理了一套从“诊断”到“根治”的 Zsh 性能优化方案,帮你把终端启动时间从几秒压缩到 0.5 秒以内。1. 性能诊断:找出拖慢速度...