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

/bin /usr/bin 和 /usr/local/bin 的故事

  •  
  •   scriptB0y ·
    laixintao · 2019-11-18 15:36:10 +08:00 · 5159 次点击
    这是一个创建于 1836 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一直搞不清 binary 应该放在哪,周末研究了下。

    Long story short,就是一开始 Unix 的开发者是用 / 的,后来磁盘不够用了,就加了 /usr,再后来又不够用了,就加了个 /home 存放真正的 user 文件,但是 /bin 和 /usr/bin 后来就有了不同的解释...

    关于详细的故事和解释,分享下原文: https://www.kawabangga.com/posts/3777

    16 条回复    2019-12-24 13:47:32 +08:00
    littleshy
        1
    littleshy  
       2019-11-18 15:51:16 +08:00   ❤️ 1
    到底 usr 是不是 user 的缩写?
    scukmh
        2
    scukmh  
       2019-11-18 15:51:19 +08:00
    有点意思。
    lazyfighter
        3
    lazyfighter  
       2019-11-18 15:59:03 +08:00
    @littleshy 同好奇
    joshua7v
        4
    joshua7v  
       2019-11-18 16:02:48 +08:00   ❤️ 1
    usr 不是 Unix System Resources 的缩写么
    scriptB0y
        5
    scriptB0y  
    OP
       2019-11-18 16:12:27 +08:00
    @littleshy
    @joshua7v
    @lazyfighter

    中午正好在 TLDP 看到这段解释。 /usr 是存放用户数据的地方,相对于系统数据。但是范围有所演变:

    “所有和用户相关的东西” --> “所有用户的 程序和数据”

    所以,一开始 /usr 的意义确实是 User 的,根据现在存放的东西,有些人就解释成:User System Resources

    Source:
    > In current Unices, /usr is where user-land programs and data (as opposed to 'system land' programs and data) are. The name hasn't changed, but it's meaning has narrowed and lengthened from "everything user related" to "user usable programs and data". As such, some people may now refer to this directory as meaning 'User System Resources' and not 'user' as was originally intended.

    https://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html
    Beebird
        6
    Beebird  
       2019-11-18 16:13:06 +08:00   ❤️ 1
    Unix 里头好多典故,我也补一个,一些 Unix 系统比如 Solaris 有些程序放在 /usr/ucb 目录, 开始不明所以,后来才知道这个 ucb 是 University of California, Berkeley 的缩写。这应该也算是 ucb 在计算机科学发展史上留下的烙印之一吧。
    jasonyang9
        7
    jasonyang9  
       2019-11-18 16:14:45 +08:00   ❤️ 1
    sysfs,就是`/sys`,和`/proc`也有很多类似的典故,反正就是个大杂烩系统,历史包袱沉重
    Rasphino
        8
    Rasphino  
       2019-11-18 16:17:13 +08:00   ❤️ 1
    不是 binary 一般放在 /opt 里,自己 make install 的程序在 /usr/local/bin 里吗
    scriptB0y
        9
    scriptB0y  
    OP
       2019-11-18 16:20:37 +08:00
    @Rasphino 是的,我在文中也说了:

    > Anyway,自从有了这两个文件夹,人们便开始赋予它们含义:/ 用来存放上游的文件,/usr 放本地的内容;后来演变成 / 放从 AT&T 官方发行的内容,/usr 放发行版的内容,那时是 IBM AIX 或 Dec Ultrix,/usr/local 放自己本地的内容;再后来人们觉得 /usr/local 放安装的新 package 不够好,那再加一个 /opt ! 将来说不定还有 /opt/local。
    abmin521
        10
    abmin521  
       2019-11-18 20:46:53 +08:00 via iPhone
    @jasonyang9 不妨详谈?
    LFUNWF
        11
    LFUNWF  
       2019-11-18 23:37:47 +08:00 via Android
    还有~/bin
    scriptB0y
        12
    scriptB0y  
    OP
       2019-11-19 09:20:01 +08:00 via iPhone
    @LFUNWF 这个就是用户自己加的了吧
    LFUNWF
        13
    LFUNWF  
       2019-11-19 12:53:07 +08:00
    @scriptB0y 精通 linux 第二版作者电脑的 path 里有,别的地方没看到过。
    scriptB0y
        14
    scriptB0y  
    OP
       2019-11-19 14:07:41 +08:00
    @LFUNWF 嗯 我也有这个的。放我自己写的一些脚本
    scriptB0y
        15
    scriptB0y  
    OP
       2019-11-19 14:07:46 +08:00
    MrBearAndFlower
        16
    MrBearAndFlower  
       2019-12-24 13:47:32 +08:00   ❤️ 1
    @littleshy 我还以为是 Unix Software Resource 呢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3144 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 13:54 · PVG 21:54 · LAX 05:54 · JFK 08:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.