Gibt es ein Handbuch oder eine Anleitung, wofür alle integrierten Verzeichnisse verwendet werden sollten? Wie ist / home / oder / net /?
Die aktuellsten Informationen finden Sie im Programmierhandbuch für Dateisysteme und man hier
in Terminal, das eine "historische Skizze" der Dateisystemhierarchie enthält (diese finden Sie am Ende dieser Antwort als Referenz).
In einem Kommentar zu Ihrer Frage wird der Dateisystem-Hierarchiestandard erwähnt . Sie werden wahrscheinlich zu dem Schluss gekommen, nach dem Durchlesen File System Programming Guide und man hier
, dass macOS nicht folgt FHS , die mehr von einer Linux - Sache. Natürlich gibt es Ähnlichkeiten zwischen dem FHS- und dem Dateisystem-Layout in macOS aufgrund des gemeinsamen UNIX-Ursprungs, aber die Unterschiede sind auffällig. macOS verwendet keine der folgenden Methoden:
/boot
ordner -> macOS verwendet /System/Library/Kernels
stattdessen (in älteren versionen von macOS war der ordner mit dem kernel /
)
/home
ordner -> macOS verwendet /Users
stattdessen
/root
ordner -> macOS verwendet /var/root
stattdessen
und /opt
wird in keinem Dokument einmal erwähnt (mehr dazu weiter /opt
unten.)
Eine weitere Unterscheidung zwischen macOS und einem FHS-konformen Betriebssystem ist die Verwendung von /private
beispielsweise /etc
einem Symlink zu /private/etc
.
Info /net
: Es handelt sich um eine Automounter-Karte (aufgeführt in /etc/auto_master
). Weitere Informationen finden Sie in Wikipedia .
Was geht in / opt / und was geht in / usr /? Ich verstehe, dass / usr / für Benutzer-Ausgangsverzeichnisse verwendet wurde, aber da dies in / Users / vorhanden ist - wozu dient es jetzt?
Obwohl /usr
in der Vergangenheit verwendet wurde, um die Home-Verzeichnisse der Benutzer zu platzieren , ist dies nicht mehr der Fall.
/usr
Enthält heutzutage Benutzerbefehle (in /usr/bin
für normale Benutzer und /usr/sbin
für administrative Benutzer wie root
), gemeinsam genutzte Bibliotheken ( /usr/lib
), Manpages ( /usr/share/man
), ausführbare Dateien, die nicht direkt von Benutzern ( /usr/libexec
) ausgeführt werden sollten, und andere Dinge.
Es bietet auch ein Unterverzeichnis, /usr/local
in dem Programme, Bibliotheken und andere Dateien abgelegt werden können, die nicht zum Basisbetriebssystem gehören.
/opt
hat eine sehr ähnliche Rolle /usr/local
und sie scheinen austauschbar. Aus meiner Erfahrung mit anderen Linux / UNIX-Systemadministratoren scheint es jedoch eine Präferenz für /usr/local
BSD-basierte UNIX-Betriebssysteme zu geben.
Das ist also meine Meinung: macOS ist BSD-basiert und ich würde es folglich verwenden /usr/local
. Beachten Sie, dass Sie ein Programmverzeichnis erstellen und dann Befehle mit Symbolen verknüpfen können /usr/local/bin
, zum Beispiel:
/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
Dies war auch unter Linux und UNIX üblich, wird jedoch vom FHS ausdrücklich untersagt : Wenn Sie Pakete von Drittanbietern in einer eigenen Verzeichnishierarchie installieren möchten, sollten Sie /opt/<package>
stattdessen diese verwenden. Beachten Sie, dass die FHS-Konformität das Einfügen von Konfigurationsdateien /etc/opt/<package>
und variablen Dateien erfordert /var/opt/<package>
.
Daher würde ich empfehlen, dass Sie sich unter macOS an /usr/local
die oben beschriebene Vorgehensweise halten.
Mir sind Add-On-Software wie Cisco VPN und XQuartz bekannt , die installiert werden /opt
, sodass die oben genannten Unterschiede allmählich verschwimmen.
man hier
Wie oben erwähnt ist dies 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