技术解析

/bin /usr/bin 和 /usr/local/bin 的故事
0
2021-06-18 23:20:31
idczone

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

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

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


到底 usr 是不是 user 的缩写?

有点意思。

同好奇

usr 不是 Unix System Resources 的缩写么




中午正好在 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

Unix 里头好多典故,我也补一个,一些 Unix 系统比如 Solaris 有些程序放在 /usr/ucb 目录, 开始不明所以,后来才知道这个 ucb 是 University of California, Berkeley 的缩写。这应该也算是 ucb 在计算机科学发展史上留下的烙印之一吧。

sysfs,就是`/sys`,和`/proc`也有很多类似的典故,反正就是个大杂烩系统,历史包袱沉重

不是 binary 一般放在 /opt 里,自己 make install 的程序在 /usr/local/bin 里吗

是的,我在文中也说了:
> Anyway,自从有了这两个文件夹,人们便开始赋予它们含义:/ 用来存放上游的文件,/usr 放本地的内容;后来演变成 / 放从 AT&T 官方发行的内容,/usr 放发行版的内容,那时是 IBM AIX 或 Dec Ultrix,/usr/local 放自己本地的内容;再后来人们觉得 /usr/local 放安装的新 package 不够好,那再加一个 /opt ! 将来说不定还有 /opt/local。

不妨详谈?

还有~/bin

这个就是用户自己加的了吧

精通 linux 第二版作者电脑的 path 里有,别的地方没看到过。

嗯 我也有这个的。放我自己写的一些脚本

https://github.com/laixintao/myrc/tree/master/bin

我还以为是 Unix Software Resource 呢

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服