问题描述
我正在运行Ubuntu Server 13.04,但我在12.04上看到了相同的情况:我有六个带有命令文件的目录。这些是:
-
/箱
-
/sbin目录
-
在/usr /bin中
-
/usr /sbin目录
-
在/usr /local /bin目录
-
在/usr /local /sbin中
这些有什么区别?例如:如果我正在编写自己的脚本,我应该在哪里添加这些脚本?
最佳解决方案
请参阅Filesystem Hierarchy Standard (FHS) for Linux。
-
/bin
:用于安装/usr
分区之前可用的二进制文件。这用于在启动早期阶段使用的微不足道的二进制文件,或用于启动single-user模式时需要的二进制文件。考虑像cat
,ls
等二进制文件 -
/sbin
:相同,但对于需要超级用户(root)权限的脚本。 -
/usr/bin
:与第一个相同,但是对于一般system-wide二进制文件。 -
/usr/sbin
:与上面相同,但对于需要超级用户(root)权限的脚本。
if I’m writing my own scripts, where should I add these?
以上都不是。对于system-wide可用脚本,应该使用/usr/local/bin
或/usr/local/sbin
。 local
路径表示它不受系统软件包管理(这是用于Debian /Ubuntu软件包的an error)。
对于user-scoped脚本,请使用~/bin
(主目录中的个人bin文件夹)。
FHS对/usr/local
表示:
Tertiary hierarchy for local data, specific to this host. Typically has further subdirectories, e.g.,
bin/
,lib/
,share/
.