Ubuntu 20.04 的/bin 和 /sbin 现在变成软连接了 - V2EX
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 8035 次点击
    这是一个创建于 2047 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 Phone
    @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  
    PRO
       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     Solana     2518 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 482ms UTC 14:40 PVG 22:40 LAX 06:40 JFK 09:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86