我有六个包含命令文件的目录。它们是/bin
、/sbin
、/usr/bin
、/usr/sbin
和。/usr/local/bin
/usr/local/sbin
这些之间有什么区别?如果我编写自己的脚本,应该将它们添加到哪里?
有关的:
答案1
请参阅Linux 的文件系统层次结构标准 (FHS)为了这。
/bin
:用于在/usr
分区挂载前可用的二进制文件。这用于在启动初期使用的简单二进制文件或需要在启动单用户模式时可用的二进制文件。考虑诸如cat
、ls
等二进制文件。/sbin
:相同,但对于二进制文件需要超级用户(root)权限。/usr/bin
:与第一个相同,但对于通用系统范围的二进制文件。/usr/sbin
:与上面相同,但需要具有超级用户(root)权限的二进制文件。
如果我正在编写自己的脚本,我应该在哪里添加这些脚本?
以上都不是。您应该使用/usr/local/bin
或/usr/local/sbin
来获取系统范围内可用的脚本。local
路径表示它不受系统包管理(这是一个错误适用于 Debian/Ubuntu 软件包)。
为了用户范围的脚本,使用~/bin
(您的主目录中的个人 bin 文件夹)。
FHS 表示/usr/local
:
本地数据的第三层级,特定于此主机.通常有进一步的子目录,例如
bin/
,,,lib/
。share/
答案2
一年前我也曾有过类似的问题:放置我的 bash 脚本的最佳目录?
二进制文件的系统目录
man hier
(hierarchy) 列出所有目录。要获取仅用于二进制文件的目录,请使用:
$ man hier | grep -E 'bin$|sbin$|^.{7}(/bin)|^.{7}(/sbin)' -A2
/bin This directory contains executable programs which are needed in single user
mode and to bring the system up or repair it.
--
/sbin Like /bin, this directory holds commands needed to boot the system, but
which are usually not executed by normal users.
--
/usr/X11R6/bin
Binaries which belong to the X-Window system; often, there is a symbolic
link from the more traditional /usr/bin/X11 to here.
--
/usr/bin
This is the primary directory for executable programs. Most programs exe‐
cuted by normal users which are not needed for booting or for repairing the
--
/usr/local/bin
Binaries for programs local to the site.
--
/usr/local/sbin
Locally installed programs for system administration.
--
/usr/sbin
This directory contains program binaries for system administration which
are not essential for the boot process, for mounting /usr, or for system
您自己的脚本放在哪里?
为了让所有用户都能访问您的脚本,您可以将它们放入其中/usr/local/bin
。请记住,您需要有sudo
权限才能在此处添加/更改文件。请参阅:是否有一个标准的位置来放置自定义 Linux 脚本?
对于您自己的用户 ID 脚本,请将它们放入/home/YOUR_NAME/bin
。请记住,您必须先创建此目录并重新启动终端才能自动设置路径~/.profile
。请参阅:如何将 /home/username/bin 添加到 $PATH?
我知道我不知道的事情
我正在考虑将一些更复杂的 bash 脚本询问 Ubuntu并使用 上的安装脚本进行设置github
。以下是几个示例:
我思考脚本应该安装在/usr/bin
$PATH 中,但我还不确定合适的位置。