Чи є посібник чи посібник, для чого слід використовувати всі вбудовані каталоги? Як, що таке / додому /, або / нетто /?
Ознайомтеся з посібником з програмування файлової системи для найновішої інформації та man hier
в терміналі, який надає "історичний ескіз" ієрархії файлової системи (він міститься в кінці цієї відповіді для ознайомлення).
У коментарі до вашого питання згадується стандарт ієрархії файлової системи . Ви, мабуть, прийдете до висновку, ознайомившись з Посібником з програмування файлової системи та man hier
, що macOS не слідкує за FHS , це більше справа Linux. Звичайно, є подібність між FHS та компонуванням файлової системи в macOS через загальне походження UNIX, але відмінності вражають. macOS не використовує нічого з цього:
/boot
папка -> macOS використовує /System/Library/Kernels
натомість (у старих версіях macOS папка, що містить ядро /
)
/home
папка -> macOS використовує /Users
натомість
/root
папка -> macOS використовує /var/root
натомість
і /opt
не один раз згадується в жодному документі (докладніше /opt
нижче).
Наступним розрізненням між macOS та сумісною з FHS ОС є використання /private
, наприклад /etc
, символьної посилання на /private/etc
.
Про /net
: Це карта автоматичного читання (перелічена в /etc/auto_master
), для отримання додаткової інформації див. Вікіпедію .
Що означає і що слід увімкнути / opt / і що повинно / увійти / usr /? Я розумію, що / usr / використовувався для домашніх каталогів користувачів, але оскільки це існує в / Users / - яка мета зараз?
Хоча /usr
раніше використовувалося для розміщення домашніх каталогів користувачів , це вже не так.
На сьогоднішній день /usr
містить команди користувача (як /usr/bin
для звичайних користувачів, так і /usr/sbin
для адміністративних користувачів, наприклад root
), спільні бібліотеки ( /usr/lib
), основні сторінки ( /usr/share/man
), виконавчі файли, які не повинні працювати безпосередньо користувачами ( /usr/libexec
) та інші речі.
Він також пропонує підкаталог, /usr/local
для розміщення програм, бібліотек та інших файлів, які не поставляються з базовою ОС.
/opt
відіграє дуже подібну роль /usr/local
і вони здаються взаємозамінними. Тим НЕ менше, з мого досвіду роботи з іншими сисадмінів Linux / UNIX, там , здається, перевагу для /usr/local
в BSD UNIX на основі операційних систем.
Отже, це я сприймаю: macOS базується на BSD, і тому я б використовував /usr/local
. Зауважте, що ви можете створити каталог програм, а потім позначати команди на /usr/local/bin
тощо, наприклад:
/usr/local/mysql
/usr/local/mysql/bin/mysqladmin
/usr/local/mysql/lib/libmysqlclient.so
/usr/local/bin/mysqladmin -> ../mysql/bin/mysqladmin
/usr/local/lib/libmysqlclient.so -> ../mysql/lib/libmysqlclient.so
Це також було звичайною практикою в Linux і UNIX, але FHS прямо забороняє це: якщо ви хочете встановити сторонні пакети у власній ієрархії каталогів, вам слід скористатися /opt/<package>
натомість. Зауважте, що відповідність FHS потребує введення файлів конфігурації /etc/opt/<package>
та файлів змінних /var/opt/<package>
.
Тож у macOS я рекомендую дотримуватися /usr/local
описаного вище.
Мені відомо про додаткові програми, такі як Cisco VPN та XQuartz, які встановлюються /opt
, тому вищезазначені відмінності починають розмиватися.
man hier
Як було сказано вище, це man hier
:
A historical sketch of the filesystem hierarchy. The modern macOS filesystem is documented in the
``File System Programming Guide'' available on Apple Developer.
/ root directory of the filesystem
/bin/ user utilities fundamental to both single-user and multi-user environments
/dev/ block and character device files
fd/ file descriptor files; see fd(4)
/etc/ system configuration files and scripts
/mach_kernel kernel executable (the operating system loaded into memory at boot time).
/sbin/ system programs and administration utilities fundamental to both single-user and multi-
user environments
/tmp/ temporary files
/usr/ contains the majority of user utilities and applications
bin/ common utilities, programming tools, and applications
include/ standard C include files
arpa/ C include files for Internet service protocols
hfs/ C include files for HFS
machine/ machine specific C include files
net/ misc network C include files
netinet/ C include files for Internet standard protocols; see inet(4)
nfs/ C include files for NFS (Network File System)
objc/ C include files for Objective-C
protocols/ C include files for Berkeley service protocols
sys/ system C include files (kernel data structures)
ufs/ C include files for UFS
lib/ archive libraries
libexec/ system daemons & system utilities (executed by other programs)
local/ executables, libraries, etc. not included by the basic operating system
sbin/ system daemons & system utilities (executed by users)
share/ architecture-independent data files
calendar/ a variety of pre-fab calendar files; see calendar(1)
dict/ word lists; see look(1)
web2 words from Webster's 2nd International
words common words
man/ manual pages
misc/ misc system-wide ascii text files
mk/ templates for make; see make(1)
skel/ example . (dot) files for new accounts
tabset/ tab description files for a variety of terminals; used in the term-
cap file; see termcap(5)
zoneinfo/ timezone configuration information; see tzfile(5)
/var/ multi-purpose log, temporary, transient, and spool files
at/ timed command scheduling files; see at(1)
backups/ misc. backup files
db/ misc. automatically generated system-specific database files
log/ misc. system log files
mail/ user mailbox files
run/ system information files describing various info about system since it was
booted
utmpx database of current users; see utmpx(5)
rwho/ rwho data files; see rwhod(8), rwho(1), and ruptime(1)
spool/ misc. printer and mail system spooling directories
mqueue/ undelivered mail queue; see sendmail(8)
tmp/ temporary files that are kept between system reboots
folders/ per-user temporary files and caches