/bin
,/sbin
,/usr/bin
,/usr/sbin
,/usr/local/bin
和/usr/local/sbin
。它们之间有什么区别?如果我正在编写自己的脚本,应该在哪里添加它们?
相关:
如何理解Ubuntu文件系统布局?
/ linux上的/ usr / bin vs / usr / local / bin
我应该在哪里放置bash脚本
#1 楼
请为此参考Linux的文件系统层次结构标准(FHS)。/bin
:有关安装/usr
分区之前可用的二进制文件。它用于非常早期的引导阶段中使用的普通二进制文件,或者用于在引导单用户模式下需要的二进制文件。请考虑使用诸如cat
,ls
之类的二进制文件。/sbin
:相同,但对于具有超级用户(root)特权的二进制文件。/usr/bin
:与first相同,但对于系统级通用二进制文件。 > /usr/sbin
:与上面相同,但对于具有超级用户(root)特权的二进制文件。如果我在编写自己的脚本,应该在哪里添加这些脚本? br />
以上都不是。对于系统范围内的可用脚本,应使用
/usr/local/bin
或/usr/local/sbin
。 local
路径表示它不受系统软件包的管理(这是Debian / Ubuntu软件包的错误)。 对于用户范围内的脚本,请使用
~/bin
(主目录中的个人bin文件夹)。FHS对
/usr/local
表示:本地数据的第三级层次结构,特定于此主机。通常具有其他子目录,例如
bin/
,lib/
和share/
。评论
将脚本放在/ bin中是否会引起任何问题?我已经根据您的回答移动了脚本,但我仍然很好奇
– Rumesh
15年4月27日在12:14
@RumeshSudhaharan您不应该这样做,因为它由程序包管理来管理。如果其他任何软件包也想使用该路径,它将覆盖您的文件。软件包中的文件永远不能重叠(至少对于正式存储库而言),因此在本地路径中安装时更加安全。另外,它只是为了您自己的方便和安全。在本地路径中,您不能以这种糟糕的方式弄乱系统,也不能意外替换系统二进制文件。
– Gertvdijk
2015年4月27日在12:17
我喜欢错误页面上的解释:严重性:严重确定性:某些
– cutrightjm
15年11月25日在6:15
我已经将一些文件放在/ usr / local / bin中,我可以执行它们,但是我不能编辑它们,ls -la什么也没显示
– M. Reza Nasirloo
18 Mar 19 '18 at 13:52
FWIW,sbin与脚本无关。它存储二进制文件-即使提供的链接也请注意。
–user260281
18/09/14在9:58
#2 楼
一年多以前,我自己也有类似的问题:放置bash脚本的最佳目录?二进制文件的系统目录
man hier
(层次结构)列出了所有目录。要获取仅用于二进制文件的脚本,请使用:$ 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?我不知道的内容
我正在考虑在Ask Ubuntu中使用一些更复杂的bash脚本。并使用
github
上的安装脚本进行设置。以下是一些示例:基于日出和日落自动调整显示亮度
同时设置不同警报的计时器
应用程序将在设置的时间后锁定屏幕Ubuntu
本地文件和AU答案之间的代码版本控制
我认为脚本应该安装在$ PATH中的
/usr/bin
中,但是我不确定是否在适当的位置。 评论
感谢您的努力,但是,除了“我所知道的我不知道的”部分之外,您还重复了gertvdijk的回答。
– danzel
18年6月11日在23:54
@danzel我认为关键是manerter部分,gertvdijk的答案没有解决。也就是说,您可以在命令行中获得目录的层次结构,而不必诉诸于在Web上(即此处)进行读取。
–WinEunuuchs2Unix
18年6月11日在23:56
我同意那是有趣的信息。但是gertvdijk已经提到了文件系统层次结构标准(该文件是IMO的信息不足摘录)。但是,这可能是我个人的看法。
– danzel
18年6月12日在0:11
@danzel我同意网站比我们硬盘上的内容有更多的深入分析。我只是想指出信息是在我们的硬盘上,而不需要借助Internet。除了引用的Wikipedia链接外,/ man / heir中还缺少/ usr / X11R6 / bin和/ usr / local / bin。
–WinEunuuchs2Unix
18年6月12日,0:26
@ WinEunuuchs2Unix,最后一段;由于您不是软件包管理者,为什么不/ usr / local / bin?
–起搏器
19年7月20日在7:09
评论
相关问题:unix.stackexchange.com/questions/8656/…@Keelan您的问题与我一年多前发布的问题接近:askubuntu.com/questions/830074 / ...