У меня есть шесть каталогов с командными файлами. Это /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/
.
/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?
Я собираюсь взять некоторые из моих более сложных сценариев bash в Ask Ubuntu и настроить их при помощи сценариев установки github
. Вот несколько примеров:
Я думаю, что скрипты должны быть установлены в /usr/bin
$ PATH, но я пока не уверен в подходящем месте.
man hier
раздел, на который не ответил gertvdijk. т.е. вы можете получить иерархическую структуру каталогов в командной строке, не прибегая к чтению его в Интернете (т.е. здесь).
man hier
является информационно недостаточным отрывком из ИМО). Впрочем, это может быть моим личным мнением.
/usr/X11R6/bin
и /usr/local/bin
которая включена в man heir
.
/usr/local/bin
поскольку вы не менеджер пакетов?