У меня есть шесть каталогов с командными файлами. Это /bin
, /sbin
, /usr/bin
, /usr/sbin
, /usr/local/bin
и /usr/local/sbin
.
В чем разница между ними? Если я пишу свои собственные сценарии, куда я должен их добавлять?
Связанный:
У меня есть шесть каталогов с командными файлами. Это /bin
, /sbin
, /usr/bin
, /usr/sbin
, /usr/local/bin
и /usr/local/sbin
.
В чем разница между ними? Если я пишу свои собственные сценарии, куда я должен их добавлять?
Связанный:
Пожалуйста, обратитесь к Стандарт иерархии файловой системы (FHS) для Linux за это.
/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/
.
У меня самого был подобный вопрос более года назад: Лучший каталог для размещения моих скриптов 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?
Для ваших собственных скриптов идентификатора пользователя поместите их в /home/YOUR_NAME/bin
. Имейте в виду, что вы должны сначала создать этот каталог и перезапустить терминал, чтобы автоматически настроить путь с помощью ~/.profile
. Смотри: Как добавить /home/username/bin в $PATH?
Я подумываю о том, чтобы использовать некоторые из моих более сложных сценариев bash в Спросите Ubuntu и настройка их с помощью скриптов установки на github
. Вот несколько примеров:
Я думать скрипты должны быть установлены в /usr/bin
который находится в $PATH, но я пока не уверен в подходящем месте.
@Keelan Ваш вопрос близок к вопросу, который я опубликовал более года назад: Where should I put my bash scripts - Ask Ubuntu