V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
seers
V2EX  ›  Linux

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

  •  
  •   seers · 2020-05-26 08:39:36 +08:00 · 7410 次点击
    这是一个创建于 1402 天前的主题,其中的信息可能已经有所发展或是发生改变。
    bin -> usr/bin
    sbin -> usr/sbin
    有什么讲究吗
    26 条回复    2020-05-27 12:08:33 +08:00
    luckyrayyy
        1
    luckyrayyy  
       2020-05-26 08:43:56 +08:00
    啊?按我理解,带 /usr 的不是用户的命令,根目录下是全局的么?所以没有全局了?
    nightwitch
        2
    nightwitch  
       2020-05-26 08:45:53 +08:00   ❤️ 1
    挺好的,最好把 lib 再链接到 /usr/lib 去
    cloudyi666
        3
    cloudyi666  
       2020-05-26 08:45:58 +08:00 via iPhone
    centos7 就已经这样了。
    codehz
        4
    codehz  
       2020-05-26 08:48:49 +08:00 via Android
    早该这么干了,现在没有人把 /usr 和根目录分开不同分区乃至存储设备了,恢复环境用的也都是在 initram 里,所以分离 /bin 和 /usr/bin 已经没有意义了
    wd
        5
    wd  
       2020-05-26 08:53:43 +08:00 via iPhone   ❤️ 1
    @luckyrayyy #1 不带 usr 的一般是管理命令给 root 用户用的
    LokiSharp
        6
    LokiSharp  
       2020-05-26 08:54:28 +08:00
    CentOS 早就这样了 lib lib64 也是
    msg7086
        7
    msg7086  
       2020-05-26 09:07:36 +08:00   ❤️ 4
    @luckyrayyy usr 目录只是因为当年硬盘不足搞出来的 workaround,usr 本身并没有意义。

    @wd 你说的应该是 sbin 相对于 bin 。
    CNife
        8
    CNife  
       2020-05-26 09:15:38 +08:00   ❤️ 1
    /bin 和 /sbin 里的软件需要被任何用户、任何启动方式下运行;
    /usr/bin 和 /usr/sbin 包括不需要在「单用户模式」下运行的系统软件;
    /usr/local/bin 和 /usr/local/sbin 是具体到本台机器上为所有用户安装的自定义程序,前面的两个层次的软件都是由 Linux 分发版厂商安装的。
    CNife
        9
    CNife  
       2020-05-26 09:24:17 +08:00
    @msg7086 不知道你说「 usr 本身没有意义」来源是哪里,是历史还是现状。我查到 FHS 2.3 标准里,/usr 是根目录下主要目录之一,用于包含大部分只读的系统文件。现在 Ubuntu 把根目录下的许多文件夹搬到了 /usr 下面,不也说明 /usr 越来越重要了吗。
    aloxaf
        10
    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
        11
    vk42  
       2020-05-26 09:32:53 +08:00   ❤️ 3
    @CNife 可以去了解下 FHS 的发展历史。最早 /bin 和 /sbin 都直接在根目录分区,但当时硬盘空间有限,工具多了放不下,所以新加了 /usr 是单独挂载的额外硬盘,然后也整了一套对应的 /usr/bin 和 /usr/sbin 。但当时为了避免出故障时无法挂载 /usr,所以要保证把最必须的工具放在根目录。但现在这个空间限制基本不成立了,也不会有人单独把 /usr 单独挂载了,所以合并是大势所趋,抛弃历史包袱。
    Kelan
        12
    Kelan  
       2020-05-26 09:47:55 +08:00   ❤️ 1
    补充一个链接 http://lists.busybox.net/pipermail/busybox/2010-December/074114.html

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

    你可能接触这个比较晚
    usr 目录是生造出来的,当年存储设备空间小,集成的东西越来越多,所有都放 /bin 和 /sbin 放不下
    需要挂多个硬盘 然后做出来 /usr/sbin /usr/bin 就是为了把日益增长的东西新工具新命令放过去
    而 /sbin /bin 只放最基本的 任何时候包括恢复模式下都必须的东西放进去
    lib 也是这样
    crystom
        19
    crystom  
       2020-05-26 11:20:09 +08:00
    @Kelan 不知道真实的历史哪个是对的,我之前在鸟哥的书上看的
    amorphobia
        20
    amorphobia  
       2020-05-26 11:32:26 +08:00   ❤️ 1
    @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 的意思
    msg7086
        21
    msg7086  
       2020-05-26 12:26:26 +08:00
    @amorphobia 对,usr 刚开始是用户的 home 目录,后来根目录硬盘满了以后文件开始往 usr 目录里堆,再后来加了一块新硬盘以后所有的 home 目录都扔进了 /home,usr 就这么留下来放根目录放不下的东西了。

    所以现在 usr 本身已经没有意义了,因为原本放在 usr 下的东西已经搬走了,usr 其实应该叫 second_drive 或者叫 d 盘更合适。
    liuxu
        23
    liuxu  
       2020-05-26 13:14:59 +08:00
    再发展发展,把根目录下的目录再弄少一点
    smilzman
        24
    smilzman  
       2020-05-26 14:30:00 +08:00


    看了下我的,貌似没变
    smilzman
        25
    smilzman  
       2020-05-26 14:31:23 +08:00
    @smilzman #24 哦,看错了。
    tomychen
        26
    tomychen  
       2020-05-27 12:08:33 +08:00
    最早只有 /
    然后扩展到 /usr
    然后 /usr 也被很多系统用了
    又来了个 /usr/local
    然后很多软件也喜欢装到了 /usr/local
    然后又有了个 /opt

    还是习惯问题,看 /usr 挂载点在哪 如果和 /在一个挂载点就无所谓,如果是独立挂载点,单、恢复模式就好玩了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1627 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:52 · PVG 00:52 · LAX 09:52 · JFK 12:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.