Вопрос Различия между / bin, / sbin, / usr / bin, / usr / sbin, / usr / local / bin, / usr / local / sbin


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

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


Связанный:


223
2018-06-14 07:13


происхождения


Связанный вопрос: unix.stackexchange.com/questions/8656/... - Gabriel Staples
@Keelan Ваш вопрос близок к вопросу, который я опубликовал год назад: askubuntu.com/questions/830074/... - WinEunuuchs2Unix


ответы:


Пожалуйста, обратитесь к Стандарт иерархии файловой системы (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/,


293
2018-06-14 07:17



так что / bin - это место, где установлены все основные файлы. как ls, cat, pwd и т. д.? Итак, / usr / bin, где установлены пользовательские приложения? какие примеры того, что должно быть в / usr / bin? - Patoshi パトシ
Делает ли скрипты в /bin вызвать какие-либо проблемы? Я переместил свои сценарии в соответствии с вашим ответом, но мне все еще интересно - Rumesh
@RumeshSudhaharan, вы не должны этого делать, потому что он управляется управлением пакетами. Если какой-либо другой пакет также хочет использовать этот путь, он перезапишет ваш файл. Файлы в пакетах никогда не могут пересекаться (по крайней мере, для официальных репозиториев), поэтому вы более безопасны при установке на локальном пути. Кроме того, это просто для вашего удобства и безопасности. В локальном пути вы не можете испортить систему таким плохим образом и вы не можете случайно заменить системный двоичный файл. - gertvdijk
Мне нравится объяснение на странице ошибки: Severity:Serious Certainty:Certain - cutrightjm
Я поместил некоторые файлы в / usr / local / bin, и я могу их выполнить, однако я не могу их редактировать, ls -la ничего не показывает - M. Reza Nasirloo


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


3
2018-06-11 23:44



Я ценю ваши усилия, но, кроме части «Что я знаю, я не знаю», вы повторили ответ gertvdijk. - danzel
@danzel Я думаю, что ключевой частью является man hier раздел, на который не ответил адрес gertvdijk. т.е. вы можете получить иерархическую структуру каталогов в командной строке, не прибегая к ее чтению в Интернете (то есть здесь). - WinEunuuchs2Unix
это интересная информация, я согласен. Но gertvdijk уже упомянул стандарт иерархии файловой системы (который man hier представляет собой информативно недостаточную выдержку ИМО). Однако это может быть мое личное мнение. - danzel
@danzel Я согласен, что веб-сайты имеют гораздо более глубокий анализ, чем то, что на наших жестких дисках. Я только пытаюсь указать, что информация находится на наших жестких дисках, не прибегая к Интернету. Кроме цитируемой ссылки в Википедии отсутствует  /usr/X11R6/bin а также /usr/local/bin который включен в man heir, - WinEunuuchs2Unix