有一个称为 FHS 的规则总结了 Linux 系统目录的布局 - 第 1 部分 -

你好。
我是Mandai,负责Wild 开发团队。
当你刚开始使用 Linux 时,你可能对 Apache 配置的位置只有个模糊的概念,只是凭直觉记住而已。但我相信
Linux 系统目录的结构,以及每个目录的名称和位置,都是有其原因的,了解这些能让你更容易理解,所以我写了这篇文章来总结 FHS(Fashion Hash)。
什么是FHS?
FHS 代表“文件层次结构标准”,它定义了 Linux 文件结构的标准。
了解这一点后,当你进入 Linux 控制台时,你或许能够理解某个文件存在的意义,并猜测出想要查看的文件的位置,从而提高工作效率。
大多数 Linux 发行版都采用了这种文件结构(FHS),因此尽管在解释上存在一些差异,但它们的结构总体上是相似的。
FHS也有不同的版本,目前正在制定3.0版本。
该版本发布于2015年5月18日,因此其内容似乎会随着时间推移而变化。
根目录下的配置
最新 FHS3.0 的原文FHS 参考规范,但由于它是英文的,我将只解释一些基本内容。
/垃圾桶
此目录包含所有用户可用的命令。
禁止在此目录下创建子目录。
共有 33 个必需命令,包括 ls、cat、ps 和 mkdir,以及 9 个可选命令。
所有这些都是至关重要的基本命令。
列表位于3.4 . /bin: 基本用户命令二进制文件(供所有用户使用)
这包括更多但不包括更少,
因此令人惊讶的是,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>
然而,由于 /lib(/usr/lib)目录的内容通常可以在 32 位和 64 位环境下使用,因此该目录本身被视为可选的。
即使在运行中的 Linux 服务器上,/lib64 目录有时也可能内容稀少甚至为空,这使得它难以使用。
请注意,在Beyond Co., Ltd. 的文章“当您无法再挂载 VirtualBox 共享文件夹时该怎么做”
/媒体
存储可移动介质的安装点。
然而,可移动介质的挂载点有几种模式,例如根目录下的 /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