/usr(系统资源)
/usr 层级结构用于供应商提供的操作系统资源。除了 /usr/local 层级结构外,任何东西(操作系统程序包管理器除外)都不应修改 /usr 下的任何内容。
软件应用程序必须假定 /usr 可以是只读的。/usr 层级结构不得用于易失性数据。除了 /usr/local 之外,/usr 层级结构不得用于任何在操作系统程序包管理器执行程序包安装/移除之外添加或更改的数据。操作系统程序包管理器可以假定整个 /usr 层级结构(/usr/local 除外)是同一个挂载点。
在操作系统程序包管理器之外安装的软件不应将数据存储在 /usr 中,因为这可能会妨碍未来任何对操作系统程序包管理器的调用。/usr/local 层级结构是个例外,它保留给操作系统程序包管理器之外的软件使用。
/usr/bin(可执行文件)
应出现在标准搜索 $PATH 中的可执行文件,并且从 shell 调用很有用。从 shell 调用无用的守护进程和可执行文件则存放在 /usr/lib 或 /usr/libexec 中。
/usr/include(C/C++ 头文件)
/usr/include 目录包含 C 和 C++ 头文件,通常包含在带有 -devel 后缀的程序包中。
/usr/lib 和 /usr/lib64(共享库)
在 Amazon Linux 2023 上,/usr/lib64 路径用于 64 位共享库以及依赖于架构的程序包数据。由于 AL2023 不附带任何 32 位用户空间支持,因此只有 64 位共享库可用。
/usr/lib 路径用于来自操作系统程序包且与所有架构兼容的静态数据。这可能包括通常不从 shell 调用的可执行文件,这些文件也可能在 /usr/libexec 中找到。共享库位于 /usr/lib64 而非 /usr/lib。
/usr/local(系统管理员安装的软件)
在 Amazon Linux 2023 上,/usr/local 路径可供系统管理员安装不属于该操作系统且不会被操作系统触及的软件。默认的 /usr/local 层级结构镜像了 / 层级结构。
/usr/share(共享资源)
共享资源(如文档、字体和时区数据)存放在 /usr/share 中。通常有各种规范明确规定数据在此目录中的存储位置和格式。
/usr/share/doc(文档)
随程序包附带的文档将存储在 /usr/share/doc 中。