Esiste un manuale o una guida per cui utilizzare tutte le directory integrate? Come è / home /, o / net /?
Dai un'occhiata alla Guida alla programmazione del file system per le informazioni più aggiornate e al man hierTerminale, che fornisce uno "schizzo storico" della gerarchia del filesystem (è incluso alla fine di questa risposta come riferimento).
Un commento alla tua domanda menziona il Filesystem Hierarchy Standard . Probabilmente arriverai alla conclusione, dopo aver esaminato la Guida alla programmazione del file system e man hier, che macOS non segue l' FHS , è più una cosa di Linux. Naturalmente, ci sono somiglianze tra FHS e il layout del filesystem in macOS a causa della comune origine UNIX, ma le differenze sono sorprendenti. macOS non utilizza nessuno di questi:
/bootcartella -> usa /System/Library/Kernelsinvece macOS (nelle versioni precedenti di macOS, la cartella contenente il kernel era /)
/homecartella -> usa /Usersinvece macOS
/rootcartella -> usa /var/rootinvece macOS
e /optnon è menzionato nemmeno una volta in nessun documento (maggiori informazioni di /optseguito).
Un'ulteriore distinzione tra macOS e un sistema operativo conforme a FHS è l'uso di /private, ad esempio /etcè un collegamento simbolico a /private/etc.
Informazioni /net: è una mappa di automounter (elencata in /etc/auto_master), vedere Wikipedia per ulteriori informazioni.
Cosa fa e dovrebbe andare in / opt / e cosa dovrebbe / dovrebbe andare in / usr /? La mia comprensione è che / usr / era usato per le home directory degli utenti, ma dato che esiste in / Users / - qual è lo scopo adesso?
Sebbene sia /usr stato usato in passato per posizionare le home directory degli utenti , non è più così.
Al giorno d'oggi, /usrcontiene comandi utente (in /usr/binper utenti normali e /usr/sbinper utenti amministrativi, come root), librerie condivise ( /usr/lib), pagine man ( /usr/share/man), file eseguibili che non dovrebbero essere eseguiti direttamente dagli utenti ( /usr/libexec) e altre cose.
Offre anche una sottodirectory, /usr/localper posizionare programmi, librerie e altri file che non vengono forniti con il sistema operativo di base.
/optha un ruolo molto simile /usr/locale sembrano intercambiabili. Tuttavia, dalla mia esperienza di lavoro con altri amministratori di sistema Linux / UNIX, sembra esserci una preferenza per /usr/locali sistemi operativi UNIX basati su BSD.
Quindi questa è la mia opinione : macOS è basato su BSD e di conseguenza lo userei /usr/local. Si noti che è possibile creare una directory di programma e quindi comandi symlink a /usr/local/bin, ecc., Ad esempio:
/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
Questa era una pratica comune anche in Linux e UNIX, ma FHS lo proibisce esplicitamente : se si desidera installare pacchetti di terze parti nella propria gerarchia di directory, è necessario utilizzare /opt/<package>invece. Si noti che la conformità FHS richiede l'inserimento dei file di configurazione /etc/opt/<package>e dei file variabili /var/opt/<package>.
Quindi, in macOS, consiglierei di attenersi a /usr/localcome sopra descritto.
Sono a conoscenza di software aggiuntivi come Cisco VPN e XQuartz che si installano /opt, quindi le distinzioni sopra iniziano a confondersi.
man hier
Come detto sopra questo è 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