who*_*ami 118 linux fhs directory
我在这个网站上阅读了这个,它没有意义。
http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/basic/node32.html
当UNIX被首先写入,
/bin并/usr/bin物理地驻留在两个不同的磁盘:/bin是一个较小的速度更快(更昂贵)盘上,和/usr/bin一个更大的速度较慢的磁盘上。现在,/bin是一个符号链接/usr/bin:它们本质上是同一个目录。
但是当你ls打开/bin文件夹时,它的内容远远少于/usr/bin文件夹(至少在我正在运行的系统上)。
那么有人可以解释一下区别吗?
xen*_*ide 95
什么?no/bin/不是/usr/bin任何 FHS 兼容系统上的符号链接。请注意,仍然有流行的 Unices 和 Linuxes 忽略了这一点——例如,/bin并在 Arch Linux 上/sbin被符号链接/usr/bin(原因是你不需要/bin救援/单用户模式,因为你只需启动一个实时光盘)。
包含系统管理员和用户都可以使用的命令,但是当没有安装其他文件系统时(例如在单用户模式下),这些命令是必需的。它还可能包含脚本间接使用的命令
这是系统上可执行命令的主目录。
本质上,/bin包含系统紧急修复、启动和单用户模式所需的可执行文件。/usr/bin包含任何不需要的二进制文件。
我会注意到,它们可以位于不同的磁盘/分区上,/bin必须与/. /usr/bin可以在另一个磁盘上 - 尽管请注意,此配置已经损坏了一段时间(这就是为什么 systemd 在启动时会警告此配置的原因)。
为了完全正确,一些 unices 可能会忽略 FHS,因为我相信它只是一个 Linux 标准,我不知道它尚未包含在 SUS、Posix 或任何其他 UNIX 标准中,尽管它应该是恕我直言。不过,它是LSB标准的一部分。
Law*_*ceC 75
更新:有关历史和真正原因/usr,请阅读:http : //lists.busybox.net/pipermail/busybox/2010-December/074114.html。还有这个。
/sbin - 启动、低级别系统修复或维护所需的二进制文件(运行级别 1 或 S)
/bin - 在任何运行级别正常/标准系统运行所需的二进制文件。
/usr/bin - 本地登录用户可以访问的应用程序/分发二进制文件
/usr/sbin - 支持或配置 /sbin 中的内容的应用程序/分发二进制文件。
/usr/share/bin - 旨在通过 Web 访问的应用程序/分发二进制文件或脚本,即 Apache Web 应用程序
*local*- 不属于发行版的二进制文件;本地编译或手动安装。通常从来没有,/local/bin但总是有/usr/local/binand /usr/local/share/bin。
Jon*_*yJD 21
关于这个问题的某种“更新”:
最近一些Linux发行版都合并/bin到/usr/bin与此相关的/lib进入/usr/lib。有时也(/usr)/sbin到/usr/bin(Arch Linux)。因此/usr预计将与/.
两种层次结构之间的区别现在被认为是不必要的复杂性。这个想法曾经只/bin在启动时可用,但是有了初始的 ramdisk就过时了。
我知道 Fedora Linux(2011 年)和 Arch Linux(2012 年)采用这种方式,而 Solaris 已经这样做了很长时间(> 15 年)。
在 Linux 上/bin和/usr/bin仍然是分开的,因为/usr在单独的分区上是很常见的(尽管这种配置有时会以微妙的方式中断)。在/bin是所有的命令,你将需要如果你只有/安装。
在 Solaris 和 Arch Linux(可能还有其他)上/bin是指向/usr/bin. 拱门也有/sbin和/usr/sbin符号链接到/usr/bin。
需要特别注意的/bin是,用于“系统管理员”命令和/usr/bin用户命令的声明是不正确的(除非您认为bash并且ls仅适用于管理员,在这种情况下您有很多东西要学习)。管理员命令在/sbin和 中/usr/sbin。
有许多基于 UNIX 的系统。Linux、AIX、Solaris、BSD 等。原始引用给出了适用于所有风格的历史背景。如果您查看任何一个特定系统,您会看到不同的结果。原始引用的最后一句仅针对某些版本和发行版。