《文件系统层级标准》选译与说明

2022-06-15, 星期三, 17:34

DevOps

《文件系统层级标准》是 Linux 基金会对 Linux 及其他类 Unix 系统中目录的组织方式给出的一种建议。如果应用软件的安装和运行遵循该标准,用户和系统管理员就可以方便地定位软件包和配置文件。

截至本文写作时该标准的最新版本为3.0

/bin:必要的可执行文件

  • 所有用户都可以访问
  • 该目录没有子目录

/opt:附加的应用软件包

  • /opt/bin/opt/doc/opt/include/opt/info/opt/lib/opt/man 仅供系统管理员使用
  • 普通用户可以调用的二进制文件应当置于 /opt/<package>/bin/opt/<provider>/<package>/bin 目录
    • 正常使用过程中会发生变化的文件应当存储在 /var/opt 目录下
    • 特定系统的配置应当放在 /etc/opt 目录下或使用符号连接

/var:运行时不断变化的数据

  • 日志、邮件等
  • /var/log 存放日志文件,为了防止日志占满根分区,生产环境中一般是单独分区

/etc:特定主机的系统配置

  • 不应该存放二进制文件
    • 可以包含可执行脚本
  • 配置文件应当存放在子目录中
  • /etc/opt 存放 /opt 的配置文件

Home 目录

  • /home 用户的 Home 目录
  • /root root 用户的 Home 目录
  • 应用程序不应该假定 Home 目录中存在的任何目录和文件,因为 Home 目录的结构是完全自定义的
  • 应用程序的用户配置应保存在 Home 目录下,文件名以 . 开头,如果存在多个配置文件,创建一个 . 开头的子目录
    • 未经用户允许,应用不应在 Home 创建其他格式的文件或目录

/tmp:临时文件

  • 供应用程序放置临时文件
  • 调用结束后不应该假定临时文件能被保留

/usr:Unix Software Resource

  • 本地安装软件时使用 /usr/local 层次结构。当系统软件更新时,需要确保它不会被覆盖。它可以用于在一组主机之间共享但在 /usr 中找不到的程序和数据
  • /usr/share 存储不需要修改的数据,可以供不同架构的系统挂载访问

其他目录

  • /media 挂载可移动媒体介质如 CD、DVD
  • /mnt 临时挂载文件系统,如移动硬盘
  • /lib 必要的共享库和内核模块
  • /boot boot loader 相关的文件
  • /sbin 用于系统管理的实用程序以及其他仅限 root 使用的命令
  • /run 运行时变量,普通用户应该没有写权限
  • /dev 设备文件