Linux 文件系统层次结构(FHS)解释

详细的目录解释可以使用 man file-hierarchyman hier 命令查看。

常见目录:

目录 描述
/bin binaries。在单用户模式下需要用到的基本命令的二进制文件,包括启动系统或修复系统所需的命令,所有用户都可以使用。目前 /bin 目录大多被链接到 /usr/bin
/sbin system binaries。系统必要的二进制文件,系统管理员可用。目前 /sbin 目录大多被链接到 /usr/sbin
/usr UNIX shared resources,只读用户数据的二级层次结构,包含大多数用户工具和应用。应该是可共享和只读的。
/usr/bin 非必要命令的二进制文件,所有用户都可以使用。
/usr/sbin 非必要命令的系统二进制文件。系统管理员可用。
/usr/lib /usr/bin/usr/sbin 中二进制文件的库文件。
/usr/lib32 替代格式库文件,在 64 位机器上提供 32 位库文件。
/usr/libexec 由其他程序运行的二进制文件,不打算由用户或 shell 脚本直接执行。
/usr/share 存储与架构无关的共享资源,如字体文件
/usr/include 标准 include 文件。如 stdio.h
/usr/src 存放系统级源代码,尤其是操作系统内核的源代码。
/usr/local 本地数据的第三级层次结构,特定于主机。通常具有进一步的子目录(例如,binlibshare
/usr/local/bin 用于存放通过源代码编译安装或非标准包管理器安装的软件的可执行文件
/usr/local/etc 存储在/usr/local目录下安装的软件的配置文件
/usr/local/src 存放用户自己下载并编译的应用程序的源代码
/var variable。变量文件:这些文件的内容在系统运行期间会不断变化,例如日志、spool 文件和临时电子邮件文件。
/var/log 日志文件
/var/lib 状态信息。程序运行时被程序修改的持久化数据(例如数据库、打包系统元数据等)。MySQL 的数据库文件的存储位置就在 /var/lib/mysql
/var/opt 存储在 /opt 中的附加软件包的变量数据。
/var/tmp 重启之间需要保留的临时文件。
/etc Editable Text Configuration(名称存在争议)。存储系统范围的配置文件
/etc/opt 存储在 /opt 中的附加软件包的配置文件。
/mnt mount。临时挂载的文件系统。
/dev device。设备文件(例如 /dev/null/dev/disk0/dev/sda1/dev/tty/dev/random
/opt optional。附加应用软件包。和 /usr/local/bin 的区别在于 /opt 往往用来存放大型软件包,每个软件包可以拥有自己独立的目录,如 /opt/<application>
/sys 包含有关设备、驱动程序和一些内核功能的信息。
/proc 是一个虚拟的文件系统,将进程和内核信息以文件的形式提供。在 Linux 中,对应于 procfs 挂载。通常由系统自动生成并动态填充。
/tmp 临时文件目录(另请参阅 /var/tmp )。通常在系统重新启动之间不会保留,并且可能受到严格的大小限制。

/tmp 和 /var/temp 的关系

FHS

文件系统层次结构标准(FHS)是描述类 Unix 系统层次结构惯例的参考文献。它因在 Linux 发行版中的使用而广为人知,但其他类 Unix 系统也在使用。它由 Linux 基金会维护。最新版本是 FHS 3.0,于 2015 年 6 月 3 日发布。

一些发行版通常遵循标准,但在某些领域有所偏离。FHS 是一个“尾随标准”,因此记录了某一时刻的常见做法。当然,时代在变化,发行版的目标和需求需要进行实验。一些常见的偏离包括:

现代 Linux 发行版包括一个 /sys 目录作为虚拟文件系统(sysfs,类似于 /proc ,它是一个procfs),用于存储和允许修改连接到系统的设备,而许多传统的类 Unix 操作系统使用 /sys 作为指向内核源代码树的符号链接。

许多现代类 Unix 系统(如 FreeBSD 通过其 ports 系统)将第三方软件包安装到 /usr/local 中,同时将被视为操作系统一部分的代码保留在 /usr 中。

一些 Linux 发行版不再区分 /lib/usr/lib ,并将 /lib 符号链接到 /usr/lib

一些 Linux 发行版不再区分 /bin/usr/bin ,以及 /sbin/usr/sbin 之间的区别。它们可能会将 /bin 符号链接到 /usr/bin,将 /sbin 符号链接到 /usr/sbin。其他发行版选择将所有四个整合在一起,将它们符号链接到 /usr/bin

参考:File Hierarchy Standard | Wikipedia

posted @ 2024-01-12 01:34  Undefined443  阅读(34)  评论(0编辑  收藏  举报