Linux系统文件的位置


我们解释Filesystem Hierarchy Standard(FHS)所定义的组织结构。

数据类型

文件系统是用来保存数据的,不同类型的数据应该放在文件系统上的不同位置。因此,第一步必须先理清如何分类数据。FHS将数据的属性分为两类,各类属性各有两种截然相反的性质。

共享性(数据用于网络环境中的应用范围)

1.共享:可供网络上的多个主机系统同时访问的数据。通常是无关特定主机的一般性信息,诸如用户的数据文件、可执行的程序文件以及通用的配置文件。

2.专用:仅供特定主机使用的数据。通常是对特定主机才有意义的信息,像是passwd文件、网络配置文件、系统日志文件。

变动性(数据变动的频繁程度)

1.常变:会因系统运作或认为操作而经常变化的数据。例如用户的邮件文件、系统日志文件。

2.静态:除非人为的刻意操作,否则,平常不会有变化的数据。例如,已被编译成binary格式的程序。这类文件只有在系统管理者进行版本升级时,才有可能被修改。

FHS的数据分类原则

  共享 专用
静态 /usr
/usr/local
/etc
/boot
动态 /var/mail
/home
/var/log
/proc

根文件系统

根文件系统位于整个目录的最顶端。根据FHS的定义,根文件系统满足下列条件:

1.必须包含足以启动操作系统的工具程序和文件,www.bkjia.com包括挂载其他文件系统的能力。这包括:工具程序、设备文件、配置文件、启动加载程序所需的信息以及其他基本的启动数据。

2.必须具备系统管理者修理或恢复遭损系统所需的工具程序。

3.规模应该精简。相较于大分区,当系统死机或断电时,小分区收到损坏的机会比较小。此外,根分区应该包含共享数据,空出尽可能多的磁盘空间来放共享数据。

4.应用软件不应该在根文件系统上创建问价或目录。

虽然你可以将整个Linux系统全都创建在单一分区上,但是,这样会违反FHS的建议。因此,根文件系统应该只包含基本的系统目录以及其他文件系统的挂载点。根文件系统应该包含的基本目录包括:

/bin

系统的基本命令,像是cp、date、ln、ls、mkdir等。此目录应该包含管理者解决问题所需的工具。

/dev

设备文件,这是访问磁盘与其他设备所必需的。例如,磁盘分区、终端机。在启动过程中,/dev必须包含必要的设备文件,才可进行挂载与配置设定。

/etc

个别系统的配置信息,特别是启动时期会用到的信息必须齐全,例如passwd、hosts以及login.defs等。此目录通常不包含binary。

/libqual(非必要)

用途与/lib一样,但用于存储不同格式的基础共享函数库。

/mnt

这是个空目录,它只包含几个挂载点,用于挂载临时的文件系统。

/media

具有跟/mnt同样的作用,但是用来挂载插入式触媒。

/root(非必需)

系统管理者的个人目录。虽然/root不一定要放在根文件系统中,但是www.bkjia.com为了让管理者可以在紧急情况下取用自己的数据和工具,/root通常放在根文件系统。

/sbin

用于系统管理的基本工具。例如fdisk、fsck、mkfs。

/srv

系统服务的专属数据。用意是让用户可以找到特定系统服务的数据文件以及相关的脚本。

以下的顶层目录并非“紧急程序“所必须,而且通常作为独立分区的挂载点:

/boot

存放内核镜像文件、boot loader所需文件。

/home(非必要)

用于存放用户的个人工作目录。这通常是整个目录树中最大的可变的文件系统。

/opt

主要用于安装非操作系统所包装的额外软件。第三方常会选用此位置来安装它们的软件。

/tmp

存放临时文件。这些文件的声明周期可能不会超过下次开机时。

/usr

存放应用软件系统,但不包含“紧急程序”所需的软件。

/var

存放会随时间改变的数据,像日志文件、邮件文件、假脱机目录。

相关内容