Существует ли руководство или руководство по использованию всех встроенных каталогов? Как то, что / home / или / net /?
Взгляните на Руководство по программированию файловой системы для получения самой man hier
последней информации и в терминале, который предоставляет «исторический очерк» иерархии файловой системы (он включен в конце этого ответа для справки).
В комментарии к вашему вопросу упоминается стандарт иерархии файловой системы . Вы, вероятно , пришли к выводу, после просматривал System File Руководства по программированию и man hier
, что MacOS не следует FHS , что больше похоже на Linux вещи. Конечно, есть сходство между FHS и макетом файловой системы в macOS из-за общего происхождения UNIX, но различия поразительны. macOS не использует ничего из этого:
/boot
папка -> /System/Library/Kernels
вместо этого используется macOS (в старых версиях macOS папка, содержащая ядро, была /
)
/home
папка -> MacOS использует /Users
вместо
/root
папка -> MacOS использует /var/root
вместо
и /opt
не упоминается ни разу ни в одном документе (подробнее /opt
ниже)
Еще один distiction между MacOS и OS 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
. Обратите внимание, что вы можете создать программный каталог, а затем команды symlink для /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