У Linux різні місця, як правило, добре підтримуються, відображають певну логіку. Напр .:
/bin
містить найосновніші інструменти (програми)
/sbin
містить найосновніші програми адміністрування
Вони містять елементарні команди, використовувані при завантаженні та фундаментальному усуненні несправностей. І тут ви бачите першу різницю. Деякі програми не призначені для використання звичайними користувачами.
Тоді загляньте /usr/bin
. Тут ви повинні знайти більший вибір команд (програм), зазвичай їх більше 1000. Вони є стандартними інструментами, але не такі важливі, як ті, що знаходяться в /bin
та /sbin
.
/usr/bin
містить команди, тоді як файли конфігурації перебувають в іншому місці. Це і розділяє функціональні об'єкти (програми), і їх конфігурацію, і інші файли, але з точки зору функціональності користувача це стане в нагоді, оскільки використання команд, не змішаних ні з чим іншим, дозволяє просто використовувати PATH
змінну, що вказує на виконувані файли. Це також вносить ясність. Те, що є, має бути виконаним.
Поглянь на мою PATH
,
$ echo "$PATH" | perl -F: -anlE'$,="\n"; say @F'
/home/tomas/bin
/usr/local/bin
/usr/bin
/bin
/usr/local/games
/usr/games
Існує рівно шість місць, що містять команди, які я можу викликати безпосередньо (тобто не за їхніми шляхами, а за іменами їхніх виконавців).
/home/tomas/bin
це мій приватний каталог у моїй домашній папці для моїх приватних виконуваних файлів.
/usr/local/bin
Я поясню окремо нижче.
/usr/bin
описано вище.
/bin
також описано вище.
/usr/local/games
це поєднання /usr/local
(пояснюється нижче) та ігор
/usr/games
- це ігри. Щоб їх не змішували з утилітами, вони виконують окремі місця розташування.
Тепер до /usr/local/bin
. Цей дещо слизький, і тут вже було пояснено: Що таке / usr / local / bin? . Щоб зрозуміти це, вам потрібно знати, що папка /usr
може бути спільною для багатьох машин і монтуватися з чистого місця. Команди там не потрібні під час завантаження, як зазначалося раніше, на відміну від тих, що в /bin
, тому місце розташування можна монтувати на більш пізніх стадіях процесу завантаження. Він також може бути змонтований лише для читання. /usr/local/bin
з іншого боку, призначений для локально встановлених програм, і він повинен бути доступним для запису. Тож хоча багато мережевих машин можуть мати загальний /usr
каталог, кожен з них матиме власну /usr/local
змонтовану всередині загальної /usr
.
Нарешті, подивіться на PATH
мого кореневого користувача:
# echo "$PATH" | perl -F: -anlE'$,="\n"; say @F'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
Він містить такі:
/usr/local/sbin
, який містить команди адміністратора типу /usr/local
/usr/local/bin
, які є тими самими, якими може користуватися звичайний користувач. Знову ж таки, їх тип можна описати як /usr/local
.
/usr/sbin
є несуттєвими утилітами управління.
/usr/bin
- це неістотні адміністративні та регулярні утиліти користувачів.
/sbin
є основними інструментами адміністратора.
/bin
є основними інструментами адміністратора та звичайного користувача.