У мене є шість каталогів з командними файлами. Це /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
(особисту папку бін у вашому домашньому каталозі).
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?
Для власних скриптів ідентифікатора користувача введіть їх /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
оскільки ви не менеджер пакунків?