文件系统
Linux中,文件是个非常广泛的概念。
Linux中的文件,不仅指磁盘上的文本、图片、视频文件,也包括硬件设备,比如串口、声卡、输入设备、输出设备等。
本文讲解的文件,主要指磁盘上的文件。
我们通常说的文本文件、图片文件都是存储在磁盘上的文件系统里面的。
视频讲解
文件系统1
文件系统2
分区和文件系统
大家知道,在 Windows上, 可以为一块磁盘 分区
。
创建好分区后,还不能立即就在分区里面放文件,还要格式化分区。
所谓格式化分区,也就是为分区安装 文件系统
。
文件系统有好多种,Windows上 目前使用的文件系统 主要是 NTFS 。
Linux经常选用的文件系统有ext2,ext3,ext4 等
我们可以把文件系统理解为一种规范,它规定了文件存放在磁盘上的方式。
如果我们把 磁盘 比作 地球 的话, 磁盘分区好比是 地球上的各个国家地区, 而每个分区的格式化就像是为每个国家 选择一种 管理制度。
在Windows机器上, 分好区,选择文件系统格式化后,对每个文件系统的分区,需要给它们各自的盘符,比如 C盘或者D盘。
我们访问Windows上的一个文件,需要给出这个文件的路径。 文件的完整路径,就是从盘符开始的:比如 D:\我的图片\a.jpg
或者 c:\Windows\write.exe
这里我们发现三点
- Windows文件系统里面都是磁盘文件或目录
- Windows的文件路径是从盘符开始的
- Windows上的文件的路径是大小写不区分的
挂接
但是,Linux系统不同,Linux文件系统里面不都是磁盘文件。
从Window过来学习Linux的同学要纠正一个思维定式,就是看到路径就一定要和磁盘上的存储的目录或文件对应起来。
而Linux文件系统目录里面除了磁盘文件,还有很多设备、甚至一些虚拟的对象,也在文件系统目录里面访问。
Linux在启动过程中,就会根据配置,创建一个虚拟的文件系统目录结构(可以想象成,Linux系统创建在内存中的一个目录结构),比如,下图蓝色部分所示
随后的启动过程,才会,将不同的分区 挂接(mount)
到文件系统不同的目录中。
上图就是把一个磁盘分区挂接到 /opt 下面。 /opt 这个路径在这个动作中被称为挂接点。
挂接后的文件系统目录如下图所示。
具体挂接到那个点,在安装Linux操作系统的时候,就选择好的。大家还记得安装过程中磁盘分区和选择mount路径的那个步骤吗?
注意:Linux启动过程中,首先挂接的是 根节点 / 对应的磁盘分区文件系统,找到其中的 /etc/fstab文件,里面记载了其他文件系统的挂接点,再依次挂接其他的文件系统。
● Linux目录结构里面没有文件系统的盘符
从上面的示例可以看到,Linux 文件系统里面只有一个 公共的根 /
, 也叫根目录。
文件系统挂接到哪个挂接点,该文件系统下面的文件就从哪个挂接点算起。 比如上图中磁盘分区挂接到 /opt 下面, 那么原来该文件系统中的文件a1 的路径就是 /opt/a1 . 如果直接挂接到根目录 /下面,那么原来该文件系统中的文件a1 的路径就是 /a1
一个文件的全路径 是 从 根 到 该文件 这条路径上 所有节点名 顺序连接,每个节点之间以 /
分开。
比如,文件a3的全路径就是:/opt/a3。
● Linux目录结构是区分大小写的 在Linux中 /root/abc 和 /root/abC 是两个文件