FHS 规则控制 Linux 系统目录的布局 - 第一部分

大家好,
我是Mandai,Wild团队负责开发工作的成员。

当你刚开始使用 Linux 时,你可能凭直觉就能记住 Apache 配置文件的位置,并且对其有大致的了解。然而,
Linux 系统目录的结构、每个目录的名称以及它们的放置位置背后都有其合理的原因。我认为了解这些原因会让理解 Linux 变得更加容易,因此我撰写了这篇文章来解释文件系统目录结构 (FHS)。

什么是FHS?

FHS 代表“文件层次结构标准”,它定义了 Linux 文件结构的标准。

在进入 Linux 控制台之前了解这一点,可以帮助您理解文件存在的原因,并精确定位所需文件的位置,从而提高工作效率。
由于大多数 Linux 发行版都使用同一文件系统手册 (FHS),因此在解释上可能略有差异,但整体结构通常相似。

FHS也有不同的版本,3.0版本目前正在开发中。
由于其发布日期是2015年5月18日,其内容可能会随着时间推移而发生变化。

 

根目录下的配置

最新版 FHS 3.0 的原文FHS 参考规范,但由于它是英文的,我将重点解释基本部分。

 

/垃圾桶

这是所有用户的命令存储位置。
禁止在此目录下创建子目录。它
包含 33 个基本命令,例如 ls、cat、ps 和 mkdir,以及 9 个可选命令。
这些都是必不可少的基本命令。

列表3.4 节中找到。/bin:基本用户命令二进制文件(供所有用户使用)

此列表包含 `more` 命令,但不包含 `less` 命令。
因此,`less` 命令并非默认安装,这一点令人惊讶(一位 `less` 用户的观点)。

 

/boot

该目录包含与引导加载程序和inetd相关的文件。它
通常位于硬盘的主引导记录中,并且似乎在操作系统启动之前使用。

 

/dev

这里存储着设备文件。
它包含与 null 和 tty 相关的文件,这些文件您可能最常用。
这些文件用于访问各种设备。

 

/ETC

“etc”代表“etcetera”(其他)。
在Unix早期,它似乎是用来存放无法明确分类的文件,但现在它是静态配置文件的存放位置,可执行二进制文件则不允许放在这里。

 

/家

此目录用于存储每个用户的主目录。
用户如何使用其主目录由用户自行决定;它可以只是存储个人文件的地方,也可以包含供互联网访问的文件,例如 apache 用户主目录下的 public_html 文件。

请注意,安装 /home 目录是可选的,因此即使不安装,系统似乎也不会出现问题。

 

/lib

这里存放着共享库和内核模块。
我在我的 CentOS 7 系统上查看 /lib 目录时发现,该目录本身是指向 /usr/lib 的一个符号链接。

这样一来,借助符号链接,Linux 可以跟上 FHS 版本更新,而不会影响现有系统。

 

/lib<qual>

<qual>の部分には、システムのビット数が入ります。
存放 64 位环境特有的共享库等文件。
目录用于
事实上,即使在运行中的 Linux 服务器上,/lib64 目录有时也可能内容稀少甚至为空,因此其使用较为复杂。

VirtualBox 共享文件夹无法挂载时的故障排除 |Beyond Co., Ltd. 也描述了类似情况,因此建议谨慎操作。

 

/媒体

存储可移动介质的安装点。

然而,可移动介质的挂载点有几种模式。它们可以是根目录下的 /cdrom,也可以是 /mnt 本身作为挂载点,或者采用 /mnt/cdrom 等形式。FHS
认为不建议在根目录下直接创建挂载点,因为每次挂载都会创建一个子目录。

此外,最近似乎普遍使用 /mnt 或更下面的路径作为挂载点,但在某些较旧的系统中,/mnt 本身可能被用作临时挂载点,这可能会导致配置冲突,因此最好使用 /media。

 

/mnt

过去,/mnt 是一个非常常见的挂载点,但 FHS3.0 建议系统管理员只能以非常有限和被动的方式使用它来临时使用文件系统。

由于 /mnt 被视为临时目录,因此挂载到该目录的任何文件系统都不应影响正在执行的任何程序的运行。

 

/选择

/opt 目录用作其他软件和软件包的安装位置。
您可以使用 `/opt/[软件包名称]`,或者LANANA将以软件名称命名的目录放置在

有些用户会在这里安装他们自己编译的软件。
从FHS的角度来看,这本身似乎不是问题,但可能会与LANANA中注册的名称发生冲突,因此您应该注意使用唯一的名称。

 

/根

这是 root 用户的主目录。
请谨慎将其他用户可能需要执行的文件放置在此目录中,因为他们可能没有足够的权限运行这些文件。

/root 似乎不是必需的目录,但如果它不存在,“/” 将被视为根主目录,这可能会造成混淆,因此最好还是设置它。

 

/跑步

该目录存储系统启动时的所有系统信息。它
主要包含PID文件、锁文件和套接字文件。

 

/sbin

sbin 代表系统二进制文件,其中包含系统管理员使用的实用命令。
此处的命令是发行版提供的;系统管理员出于管理目的添加的任何其他工具都应添加到 /usr/sbin 目录下。

 

/srv

本网站旨在以集中的方式更轻松地查找和管理服务器上运行的服务的数据文件。

但是,由于对于如何使用 /srv 创建文件结构没有具体的决定,因此在 CentOS7 上它是空的。

一种方法是根据协议创建一个目录,将使用该协议的服务名称的目录放在子目录中,并布局目录,以便将配置文件、管理脚本等放置在那里。

 

/tmp

这是大家最喜欢的临时目录。
重启后,/tmp 目录将为空,而 /var/tmp 目录将保留其内容。

篇幅已长,我将在下半部分继续。

就这样。

如果您觉得这篇文章对您有帮助,请点个“赞”!
14
加载中...
14票,平均分:1.00/114
16,178
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

万代洋一

我的主要工作是开发社交游戏的Web API,但幸运的是,我也有机会参与其他各种任务,包括市场营销。
我在Beyond中的图像版权采用CC0协议。