Различия между / bin, / sbin, / usr / bin, / usr / sbin, / usr / local / bin, / usr / local / sbin

У меня есть шесть каталогов с командными файлами. Это /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin и /usr/local/sbin.

1113 В чем различия между ними? Если я пишу свои собственные сценарии, куда мне их добавить?


Связанные:

290
задан 12 June 2018 в 02:22

2 ответа

Для этого обратитесь к Стандарту иерархии файловых систем (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/.

0
ответ дан 12 June 2018 в 02:22

У меня был похожий вопрос год назад +: Лучший каталог для размещения моих 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, но я пока не уверен в подходящем месте.

0
ответ дан 12 June 2018 в 02:22

Другие вопросы по тегам:

Похожие вопросы: