【概述】
与 Windows 系统以存储介质为主目录为辅相反,Linux 是以树形目录结构的形式来构建系统,可将树形目录视为一个用户可操作系统的骨架
本质上,目录结构与操作系统内核都存储在磁盘上,但从逻辑上来说 Linux 的磁盘是挂载在目录上的,每一个目录不仅可使用本地磁盘分区的文件系统,还可使用网络上的文件系统
【FSH 标准】
概述
利用 Linux 开发产品或 distribution 的个人、团队、公司太多,如果每个人都按自己的想法来配置文件放置的目录,那么会造成诸多管理上的困难,为解决这种问题,出现了 FHS 标准
FHS(Filesystem Hierarchy Standard)标准,文件系统层次结构标准,是多数 Linux 版本采用的文件组织形式,其主要目的是希望让用户可以了解到已安装软件通常放置在哪个目录下,因此希望独立软件开发商、OS 制作者、维护系统的用户等,都能遵循 FHS 标准
FHS 标准定义了系统中每个区域的用途、所需要的最小构成的文件和目录、给出了例外处理与矛盾处理等。简单来说,其规范了每个特定目录下应该要放置什么样的数据
交互形态
FHS 依据文件系统使用的频繁与否以及是否允许用户随意改动,将目录定义为四种交互作用的形态,如图:
- 可分享的:可以分享给其他系统挂载的使用目录,包括执行文件、用户邮件等
- 不可分享的:自己机器上运行的设备文件、与程序有关的 socket 文件等,仅与自身机器有关
- 不可变的:不会经常变动的数据,且跟随着 distribution 而不变动,例如函数库、文件说明文件等
- 可变的:经常改变的数据,例如登录文件、新闻组等
三个目录
概述
FHS 针对目录树架构,定义了三层目录下应该放置的数据:
/
:根(root)目录,与开机系统有关/usr
:与软件安装、执行有关/var
:与系统运作过程有关
根目录
根目录是整个系统中最重要的目录,所有的目录都是由根目录衍生出来的,同时根目录与开机、还原、系统修复等操作有关
由于系统开机时要特定的开机软件、内核文件、开机所需程序、函数库等文件数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行
因此,系统根目录不需要放置在非常大的分区内,因为越大的分区会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会
/user 目录
/user
是 UNIX 软件资源(UNIX Software Resource)的缩写,其存放的是与软件安装、运行有关的数据,均是可分享与不可变动的
这个目录有点类似于 Windows 系统的 C:\Windows\
和 C:\Program files\
两目录的综合体,其在安装时会占用较大的硬盘容量
/var 目录
/var
目录主要针对于常态性变动的文件,包括缓存、登录文件、某些软件运行产生的文件等
【目录树】
在 Linux 中,所有文件与目录都是由根目录开始的,然后一个个分支下来,称这种配置方式为目录树(Directory Tree)
其主要特性有:
- 起始点为根目录
- 每个目录不只能使用本地端的文件系统,还可以使用网络端的文件系统
- 每个文件在目录树中的文件名(包含完整路径)是独一无二的
下面给出目录树的结构图