本章主要基于 文件系统层次标准 (FHS) 2.1 版本,该标准试图为 Linux 系统中目录树的组织方式设定一个标准。这样的标准具有以下优势:编写或移植 Linux 软件以及管理 Linux 机器将变得更容易,因为一切都应位于标准化的位置。该标准背后没有任何强制任何人遵守的权威机构,但它已获得许多 Linux 发行版的支持。在没有非常令人信服的理由的情况下,打破 FHS 并不是一个好主意。FHS 试图遵循 Unix 传统和当前趋势,使 Linux 系统对于那些有其他 Unix 系统经验的人来说是熟悉的,反之亦然。
本章不如 FHS 详细。系统管理员还应阅读完整的 FHS 以获得全面的理解。
本章不详细解释所有文件。目的不是描述每个文件,而是从文件系统的角度概述系统。有关每个文件的更多信息,请参阅本手册的其他部分或 Linux 手册页。
完整的目录树旨在分解为更小的部分,每个部分都能够位于自己的磁盘或分区上,以适应磁盘大小限制并简化备份和其他系统管理任务。主要部分是根目录 (/ ), /usr , /var和/home文件系统(参见 图 3-1)。每个部分都有不同的用途。目录树的设计使其可以在 Linux 机器网络中良好地工作,这些机器可以通过只读设备(例如,CD-ROM)或通过 NFS 在网络上共享文件系统的某些部分。
目录树不同部分的角色在下面描述。
根文件系统是特定于每台机器的(它通常存储在本地磁盘上,尽管它也可以是 ramdisk 或网络驱动器),并且包含启动系统以及将其提升到可以挂载其他文件系统的状态所需的文件。因此,根文件系统的内容对于单用户状态来说是足够的。它还将包含用于修复损坏系统以及从备份中恢复丢失文件的工具。
文件系统/usr包含正常操作期间所需的所有命令、库、手册页和其他不变的文件。/usr中的任何文件都不应特定于任何给定的机器,也不应在正常使用期间修改它们。这允许文件通过网络共享,这可以节省磁盘空间,从而具有成本效益(/usr中可能很容易有数百兆字节,甚至越来越多的千兆字节)。网络挂载 /usr 可以使管理更容易(在更新应用程序时,只需更改主/usr,而不是每台机器单独更改)。即使文件系统位于本地磁盘上,也可以将其挂载为只读,以减少崩溃期间文件系统损坏的可能性。
文件系统/var文件系统/var包含更改的文件,例如假脱机目录(用于邮件、新闻、打印机等)、日志文件、格式化的手册页和临时文件。传统上,/usr中的所有内容都位于/usr之下,但这使得无法将
文件系统/home挂载为只读。/home文件系统/home包含用户的家目录,即系统上的所有真实数据。将家目录分离到自己的目录树或文件系统中,可以使备份更容易;其他部分通常不必备份,或者至少不像它们很少更改那样频繁地备份。一个大的可能必须跨越多个文件系统进行拆分,这需要在之下添加一个额外的命名级别,例如/home/students.
和/var之下添加一个额外的命名级别,例如/usr/home/staff尽管上面将不同的部分称为文件系统,但实际上没有要求它们必须位于单独的文件系统上。如果系统是一个小型单用户系统,并且用户希望保持简单,则可以将它们轻松地保存在一个文件系统中。目录树也可能以不同的方式划分为文件系统,具体取决于磁盘的大小以及为各种目的分配的空间。然而,重要的是所有标准名称都能工作;即使比如说,之下添加一个额外的命名级别,例如实际上位于同一分区上,名称/usr/lib/libc.a/var/var/log/messages也必须工作,例如通过将下面的文件移动到/var/usr/var也必须工作,例如通过将.
,并将