Linux 文件系统与链接

笔记/Linux/Linux 基础/Linux 文件系统与链接

对应 Linux 面试题 50 道 第 21–25 题。

一切皆文件#

Linux 继承 Unix 哲学:一切皆文件。网络接口卡、磁盘、打印机、普通文件、目录都被视为文件,用户可用读写文件的方式访问硬件。

Linux 常见文件类型:

类型说明
普通文件 -文本、二进制等
目录 d文件夹
字符设备 c串口等
块设备 b磁盘等
符号链接 l软链接
管道 p进程间通信

目录结构#

Linux 文件系统像一棵倒立的树,根目录为 /

目录说明
/bin常用命令(ls、cat、mkdir)
/sbin系统管理命令(ifconfig),root 权限
/etc系统配置文件
/home普通用户主目录
/root超级用户主目录
/usr系统应用程序
/opt第三方可选软件(如 tomcat)
/var可变数据(日志、缓存)
/tmp临时文件
/dev设备文件
/proc虚拟文件系统,映射内核/进程信息
/boot引导文件
/lib共享库
/mnt临时挂载点
/lost+found异常关机后的孤立文件

inode 原理#

硬盘存储层次:

扇区 (512B) → 块 block (常见 4KB) → 文件数据
inode(元信息 + 磁盘地址表)

inode(索引节点) 存储文件元信息:大小、所有者、权限、类型、时间戳,以及 磁盘地址表(13 个块号)。

读取文件的过程:

  1. 在目录表中查找文件名对应的 inode 号
  2. 读取 inode 中的磁盘地址表
  3. 按块号顺序读取物理块,组装成逻辑文件

查看 inode 信息:

Terminal window
ls -i file.txt # 查看 inode 号
stat file.txt # 查看详细元信息
df -i # 查看 inode 使用情况

硬链接 vs 软链接#

维度硬链接软链接(符号链接)
命令ln source hardlinkln -s source symlink
本质同一 inode 的另一个目录项新建 inode,内容为原文件路径
跨文件系统不可以可以
跨机器不可以可以
链接目录仅 root任意用户
删除原文件硬链接仍可用链接悬空(broken link)
实际使用较少更常用
Terminal window
# 硬链接
ln readme.txt readme_hard.txt
# 软链接
ln -s /opt/app/config.yml config.yml

面试要点:生产环境几乎都用软链接;硬链接不能跨分区;删除软链接不会删除原文件,删除原文件会导致软链接失效。

RAID 简介#

RAID(Redundant Array of Independent Disks)将多块磁盘组合为阵列,在性能与冗余间权衡:

级别说明空间利用率容错
RAID 0条带化,速度最快100%任意一块坏即全损
RAID 1镜像50%容忍一块损坏
RAID 5分布奇偶校验,至少 3 块(n-1)/n容忍一块损坏
RAID 10先镜像再条带50%有条件容忍多块

云时代更多接触云盘/SSD,物理 RAID 由云厂商底层实现,开发者较少直接管理。

文章目录

文章目录