Ubuntu 20.04 的/bin 和 /sbin 现在变成软连接了

2020-05-26 08:39:36 +08:00
 seers
bin -> usr/bin
sbin -> usr/sbin
有什么讲究吗
7614 次点击
所在节点    Linux
26 条回复
luckyrayyy
2020-05-26 08:43:56 +08:00
啊?按我理解,带 /usr 的不是用户的命令,根目录下是全局的么?所以没有全局了?
nightwitch
2020-05-26 08:45:53 +08:00
挺好的,最好把 lib 再链接到 /usr/lib 去
cloudyi666
2020-05-26 08:45:58 +08:00
centos7 就已经这样了。
codehz
2020-05-26 08:48:49 +08:00
早该这么干了,现在没有人把 /usr 和根目录分开不同分区乃至存储设备了,恢复环境用的也都是在 initram 里,所以分离 /bin 和 /usr/bin 已经没有意义了
wd
2020-05-26 08:53:43 +08:00
@luckyrayyy #1 不带 usr 的一般是管理命令给 root 用户用的
LokiSharp
2020-05-26 08:54:28 +08:00
CentOS 早就这样了 lib lib64 也是
msg7086
2020-05-26 09:07:36 +08:00
@luckyrayyy usr 目录只是因为当年硬盘不足搞出来的 workaround,usr 本身并没有意义。

@wd 你说的应该是 sbin 相对于 bin 。
CNife
2020-05-26 09:15:38 +08:00
/bin 和 /sbin 里的软件需要被任何用户、任何启动方式下运行;
/usr/bin 和 /usr/sbin 包括不需要在「单用户模式」下运行的系统软件;
/usr/local/bin 和 /usr/local/sbin 是具体到本台机器上为所有用户安装的自定义程序,前面的两个层次的软件都是由 Linux 分发版厂商安装的。
CNife
2020-05-26 09:24:17 +08:00
@msg7086 不知道你说「 usr 本身没有意义」来源是哪里,是历史还是现状。我查到 FHS 2.3 标准里,/usr 是根目录下主要目录之一,用于包含大部分只读的系统文件。现在 Ubuntu 把根目录下的许多文件夹搬到了 /usr 下面,不也说明 /usr 越来越重要了吗。
aloxaf
2020-05-26 09:24:24 +08:00
systemd 一直都是建议这么做的: https://www.freedesktop.org/software/systemd/man/file-hierarchy.html#/bin/

/bin/, /sbin/, /usr/sbin/ 指向 /usr/bin/
/lib/, /lib64/ 指向 /usr/lib/
/var/run/ 指向 /run/
vk42
2020-05-26 09:32:53 +08:00
@CNife 可以去了解下 FHS 的发展历史。最早 /bin 和 /sbin 都直接在根目录分区,但当时硬盘空间有限,工具多了放不下,所以新加了 /usr 是单独挂载的额外硬盘,然后也整了一套对应的 /usr/bin 和 /usr/sbin 。但当时为了避免出故障时无法挂载 /usr,所以要保证把最必须的工具放在根目录。但现在这个空间限制基本不成立了,也不会有人单独把 /usr 单独挂载了,所以合并是大势所趋,抛弃历史包袱。
Kelan
2020-05-26 09:47:55 +08:00
补充一个链接 http://lists.busybox.net/pipermail/busybox/2010-December/074114.html

实质上很多使用方法是后来望文生义了
jinliming2
2020-05-26 09:57:50 +08:00
@vk42 但是就很好奇,为啥不是去掉 usr 目录下的 /usr/bin /usr/sbin,保留根目录的 /bin /sbin……
crystom
2020-05-26 10:00:48 +08:00
usr 并不是指 user,而是 Unix System Resources 的简写
vk42
2020-05-26 10:22:07 +08:00
@jinliming2 去掉哪个无所谓啊,毕竟还是要有软链接保证对标准的兼容。合并的关键是省去开发者和打包者纠结该把程序搁在哪。激进点的 Arch 甚至把 /sbin 和 /usr/sbin 也直接合并到 /usr/bin 了
Kelan
2020-05-26 10:28:36 +08:00
@crystom 这就是为了高大上硬凑的例子了
msg7086
2020-05-26 11:07:39 +08:00
@CNife FHS 是很后面的事情了。usr 的起源要追溯到 50 年前。
realpg
2020-05-26 11:08:09 +08:00
@CNife #9

你可能接触这个比较晚
usr 目录是生造出来的,当年存储设备空间小,集成的东西越来越多,所有都放 /bin 和 /sbin 放不下
需要挂多个硬盘 然后做出来 /usr/sbin /usr/bin 就是为了把日益增长的东西新工具新命令放过去
而 /sbin /bin 只放最基本的 任何时候包括恢复模式下都必须的东西放进去
lib 也是这样
crystom
2020-05-26 11:20:09 +08:00
@Kelan 不知道真实的历史哪个是对的,我之前在鸟哥的书上看的
amorphobia
2020-05-26 11:32:26 +08:00
@crystom

哈哈,本来我已经信了你说的了,看到你们争论我去搜索了一下,找到这个:

https://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html


In the original Unix implementations, /usr was where the home directories of the users were placed (that is to say, /usr/someone was then the directory now known as /home/someone).

这么看来 /usr 就是 user 的意思

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/675467

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX