由此得到的二进制文件可以source
立即获取吗?
我是否需要将其添加到 bash 配置文件中以获取其来源?
如果我理解正确的话,还有其他地方可以存放二进制文件,例如:
/usr/bin
/bin
/usr/local/bin
为什么这么多?
答案1
这些bin
文件夹用于可执行程序。
在 Ubuntu 19.10 之前,文件夹/bin
本身仅用于启动和修复系统的最低限度功能。该/usr/bin
文件夹用于大多数可执行程序。现在/bin
已符号链接到/usr/bin
,因此它们现在是同一个。
$ lsb_release -r
Release: 20.04
$ ls -al /
total 104
drwxr-xr-x 20 root root 4096 Apr 16 08:28 .
drwxr-xr-x 20 root root 4096 Apr 16 08:28 ..
lrwxrwxrwx 1 root root 7 Oct 2 2021 bin -> usr/bin
$ lsb_release -r
Release: 18.04
$ ls -al /
total 1459924
drwxr-xr-x 24 root root 4096 Feb 24 07:36 .
drwxr-xr-x 24 root root 4096 Feb 24 07:36 ..
drwxr-xr-x 2 root root 4096 Feb 24 07:11 bin
用于/usr/local/bin
不受分发包管理的可执行程序。
您的文件夹的答案$HOME/bin
包含在.profile
您的主文件夹 ( /home/<user>/
) 中。它 ( .profile
) 在您登录时自动获取。
您的主文件夹中的文件包含.profile
以下部分(这完全取决于偏好):
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
如果存在上述任一bin
文件夹,则当用户登录其帐户时,它们会自动添加到$PATH
。它用于存放用户自己的私人可执行程序和脚本。它们主要用于这些文件夹的用户或所有者,使它们对其他用户保密。
答案2
Linux 系统是多用户的,即使只有一个人使用该系统。这一点值得记住。
- /bin 用于最小环境中所需的程序,没有 GUI。
- /usr/bin 用于存储可选程序,但通常使用带有或不带有 GUI 的程序。
- /usr/local/bin 用于存放未由包管理器管理的程序。这通常是脚本、自定义代码或自定义编译代码,供系统所有用户访问
- ~/bin/ 用于存放脚本、代码、自定义代码,这些代码仅供单个用户使用,而不是供所有人使用。如果系统管理员拒绝安装软件包或将非软件包程序安装到 /usr/local,用户也可以在此放置他们喜欢的任何代码。
主要的 Linux 发行版 (大部分) 都遵循 Linux 文件系统层次结构标准文档。每个目录的用途摘要可在同名维基百科文章中找到。https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard 它严格遵循已存在 30 多年的 UNIX 文件系统层次结构标准。我不知道 UNIX 标准是否真正标准,但它们似乎都非常相似。
我发现 Ubuntu(以及其他一些发行版)上唯一违反这些标准的地方是与 /media/ 以及 snap 包所在的位置有关。但这是另一个问题。