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

Я запускаю Ubuntu Server 13.04, но я вижу то же самое в 12.04: у меня есть шесть каталогов с командами. Эти:

  • / бен
  • / SBIN
  • / USR / бен
  • / USR / SBIN
  • / USR / местные / бен
  • / USR / местные / 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/ .