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