有一个称为 FHS 的规则总结了 Linux 系统目录的布局 - 第 1 部分 -
你好。
我是Mandai,负责Wild 开发团队。
当你第一次开始使用 Linux 时,你可能会觉得你对 apache 配置在哪里有一个模糊的概念。
Linux系统目录的结构、每个目录的名称和位置都是有充分理由的,我想如果你知道这些,你就能更容易地理解事情,所以我想给你发一篇文章FHS 总结道。
什么是FHS?
FHS代表“File Hierarchy Standard”,它定义了Linux文件结构的标准。
了解这一点并进入 Linux 控制台将有助于您了解某个文件为何存在以及您想要查看该文件的位置,这可能会提高您的工作效率。
这种FHS被大多数Linux发行版所采用,因此虽然在解释上存在一些差异,但它们通常具有相同的结构。
FHS也有版本,目前正在开发3.0。
本次发布日期为2015年5月18日,看来内容会随着时代的变化而改变。
根目录下的配置
最新的FHS3.0的原文FHS参考规范,但由于它是英文的,所以我将重点关注基础部分。
/垃圾桶
所有用户的命令存储位置。
禁止在此目录中创建子目录。
有 33 个必需命令和 ls、cat、ps 和 mkdir 等 9 个可选命令。
所有这些都是肯定需要的基本命令。
该列表可以在3.4 中找到:基本用户命令二进制文件(供所有用户使用)
这包括“多”和“少”。
因此,令人惊讶的是 less 命令不一定被安装(less 组的意见)。
/启动
该目录包含与引导加载程序和inetd 相关的文件。
它通常放置在硬盘的主引导记录中,似乎在启动操作系统之前使用。
/dev
这是存储设备文件的位置。
它包含与 null 和 tty 相关的文件,这些文件可能是最有用的。
该文件用于访问各种设备。
/ETC
等等(其他)意思等等。
在Unix很早期的时候,似乎这是一个存放文件的地方,无法明确归类到哪一个,但现在它是一个静态配置文件的地方,可执行的二进制文件不能放在那里。 。
/家
用于存储每个用户的主目录的目录。
主目录如何使用由用户决定,因此它可能只是一个存放个人文件的地方,也可能是apache用户主目录下的一个地方,例如public_html,用于存储供互联网上公众查看的文件。 。
注意/home的安装被视为一个选项,所以看起来即使没有它,系统也应该没有问题。
/lib
这是共享库和内核模块的位置。
当我在 CentOS7 上查看 /lib 时,这个目录本身就是 /usr/lib 的符号链接。
这样,在Linux中,得益于符号链接,可以在不影响现有系统的情况下跟踪FHS版本升级。
/lib<qual>
该部分包含系统的位数。
/lib64 存储特定于 64 位环境的共享库。
但是,由于 /lib (/usr/lib) 中的内容通常可用于 32 位和 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文件、lock文件、socket文件等。
/sbin
sbin 代表系统二进制文件,其中包含系统管理员的实用程序命令。
这里的命令是发行版准备的,似乎系统管理员添加的用于管理的任何工具都应该添加到/usr/sbin下。
/srv
这样做的目的是为了更轻松地以集成方式查找和管理服务器上运行的服务的数据文件。
然而,对于如何使用/srv创建文件结构没有特别的决定,因此在CentOS7中它是空的。
一种方法是根据协议创建一个目录,在子目录中放置一个使用该协议的服务名称的目录,并布局放置配置文件、管理脚本等。
/tmp
这是每个人最喜欢的临时目录。
重新启动时,/tmp 将为空,/var/tmp 将为空。
这篇太长了,所以我会在后半部分继续。
就是这样。