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 hier
Terminale, 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:
/boot
cartella -> usa /System/Library/Kernels
invece macOS (nelle versioni precedenti di macOS, la cartella contenente il kernel era /
)
/home
cartella -> usa /Users
invece macOS
/root
cartella -> usa /var/root
invece macOS
e /opt
non è menzionato nemmeno una volta in nessun documento (maggiori informazioni di /opt
seguito).
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, /usr
contiene comandi utente (in /usr/bin
per utenti normali e /usr/sbin
per 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/local
per posizionare programmi, librerie e altri file che non vengono forniti con il sistema operativo di base.
/opt
ha un ruolo molto simile /usr/local
e sembrano intercambiabili. Tuttavia, dalla mia esperienza di lavoro con altri amministratori di sistema Linux / UNIX, sembra esserci una preferenza per /usr/local
i 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/local
come 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