Existe-t-il un manuel ou un guide sur l'utilisation de tous les répertoires intégrés? Comme quoi est / home /, ou / net /?
Jetez un œil au Guide de programmation du système de fichiers pour obtenir les informations les plus récentes et man hier
dans Terminal, qui fournit une "esquisse historique" de la hiérarchie du système de fichiers (il est inclus à la fin de cette réponse pour référence).
Un commentaire à votre question mentionne la norme de hiérarchie du système de fichiers . Vous arriverez probablement à la conclusion, après avoir lu le Guide de programmation du système de fichiers et man hier
, que macOS ne suit pas le FHS , c'est plus une chose Linux. Bien sûr, il existe des similitudes entre le FHS et la disposition du système de fichiers dans macOS en raison de l'origine UNIX commune, mais les différences sont frappantes. macOS n'utilise aucun de ces éléments:
/boot
dossier -> macOS utilise à la /System/Library/Kernels
place (dans les anciennes versions de macOS, le dossier contenant le noyau était /
)
/home
dossier -> macOS utilise à la /Users
place
/root
dossier -> macOS utilise à la /var/root
place
et /opt
n'est pas mentionné une seule fois dans aucun document (plus de détails /opt
ci-dessous.)
Une autre distinction entre macOS et un système d'exploitation compatible FHS est l'utilisation /private
, par exemple, d' /etc
un lien symbolique vers /private/etc
.
À propos /net
: Il s'agit d'une carte de montage automatique (répertoriée dans /etc/auto_master
), voir Wikipedia pour plus d'informations.
Qu'est-ce qui doit et doit aller dans / opt / et qu'est-ce qui doit / doit aller dans / usr /? Ma compréhension est que / usr / était utilisé pour les répertoires personnels des utilisateurs, mais puisque cela existe dans / Users / - quel est le but maintenant?
Bien qu'il ait /usr
été utilisé dans le passé pour placer les répertoires personnels des utilisateurs , ce n'est plus le cas.
De nos jours, /usr
contient des commandes utilisateur ( /usr/bin
pour les utilisateurs normaux et /usr/sbin
pour les utilisateurs administratifs, comme root
), des bibliothèques partagées ( /usr/lib
), des pages de manuel ( /usr/share/man
), des exécutables qui ne devraient pas être exécutés directement par les utilisateurs ( /usr/libexec
) et d'autres choses.
Il propose également un sous-répertoire, /usr/local
pour placer des programmes, des bibliothèques et d'autres fichiers qui ne sont pas fournis avec le système d'exploitation de base.
/opt
a un rôle très similaire /usr/local
et ils semblent interchangeables. Cependant, d'après mon expérience de travail avec d'autres administrateurs système Linux / UNIX, il semble y avoir une préférence pour /usr/local
les systèmes d'exploitation UNIX basés sur BSD.
Voici donc mon point de vue: macOS est basé sur BSD et par conséquent j'utiliserais /usr/local
. Notez que vous pouvez créer un répertoire de programme puis des commandes de lien symbolique vers /usr/local/bin
, etc., par exemple:
/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
Cette pratique était également habituelle sous Linux et UNIX, mais le FHS l'interdit explicitement : si vous souhaitez installer des packages tiers dans leur propre hiérarchie de répertoires, vous devez utiliser à la /opt/<package>
place. Notez que la conformité FHS nécessite de placer des fichiers de configuration /etc/opt/<package>
et des fichiers variables /var/opt/<package>
.
Donc, sous macOS, je vous recommande de vous en tenir à la /usr/local
procédure décrite ci-dessus.
Je connais des logiciels complémentaires comme Cisco VPN et XQuartz qui s'installent /opt
, donc les distinctions ci-dessus commencent à s'estomper.
man hier
Comme mentionné ci-dessus, c'est 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