我有六个带有命令文件的目录。这是/bin
,/sbin
,/usr/bin
,/usr/sbin
,/usr/local/bin
和/usr/local/sbin
。
这些之间有什么区别?如果我正在编写自己的脚本,应该在哪里添加它们?
有关:
我有六个带有命令文件的目录。这是/bin
,/sbin
,/usr/bin
,/usr/sbin
,/usr/local/bin
和/usr/local/sbin
。
这些之间有什么区别?如果我正在编写自己的脚本,应该在哪里添加它们?
有关:
Answers:
请为此参考Linux的文件系统层次结构标准(FHS)。
/bin
:对于在/usr
安装分区之前可用的二进制文件。它用于非常早期的引导阶段中使用的普通二进制文件,或者用于在引导单用户模式下需要的二进制文件。认为这样的二进制文件cat
,ls
等等。
/sbin
:相同,但是对于具有超级用户(root)特权的二进制文件。
/usr/bin
:与first相同,但适用于常规的系统级二进制文件。
/usr/sbin
:与上述相同,但是对于具有超级用户(root)特权的二进制文件。
如果我正在编写自己的脚本,应该在哪里添加这些脚本?
以上都不是。您应该将/usr/local/bin
或/usr/local/sbin
用于系统范围内的脚本。该local
路径表示它不受系统软件包的管理(这是Debian / Ubuntu软件包的错误)。
对于用户范围的脚本,请使用~/bin
(主目录中的个人bin文件夹)。
FHS表示/usr/local
:
本地数据的第三级层次结构,特定于此主机。通常具有进一步的子目录,例如
bin/
,lib/
,share/
。
/bin
会引起任何问题?我已经根据您的回答移动了脚本,但我仍然感到好奇
Severity:Serious Certainty:Certain
ls -la
什么也没显示
我一年多以前也有类似的问题:放置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
。以下是一些示例:
我认为应该将脚本安装在/usr/bin
$ PATH中,但是我不确定在适当的位置。
man hier
gertvdijk的答案未解决的部分。也就是说,您可以在命令行中获得目录的层次结构,而不必诉诸于在Web上读取它(即此处)。
man hier
是IMO的信息不足摘录)。但是,这可能是我个人的看法。
/usr/X11R6/bin
,/usr/local/bin
该链接包含在中man heir
。
/usr/local/bin
因为您不是包管理器?