Czy istnieje instrukcja lub przewodnik do tego, do czego należy używać wszystkich wbudowanych katalogów? Jak co to jest / home / lub / net /?
Zajrzyj do Przewodnika programowania systemu plików, aby uzyskać najbardziej aktualne informacje oraz man hier
w Terminalu, który zawiera „historyczny szkic” hierarchii systemu plików (znajduje się na końcu tej odpowiedzi w celach informacyjnych).
Komentarz do twojego pytania wspomina o Standardie Hierarchii Systemów Plików . Prawdopodobnie dojdziesz do wniosku, po przeczytaniu Przewodnika po programowaniu systemu plików i man hier
, że macOS nie postępuje zgodnie z FHS , to raczej kwestia Linuksa. Oczywiście istnieją podobieństwa między FHS a układem systemu plików w systemie macOS ze względu na wspólne pochodzenie systemu UNIX, ale różnice są uderzające. macOS nie używa żadnego z tych:
/boot
folder -> używa /System/Library/Kernels
zamiast tego macOS (w starszych wersjach macOS był folder zawierający jądro /
)
/home
folder -> używa /Users
zamiast tego macOS
/root
folder -> używa /var/root
zamiast tego macOS
i /opt
nie jest wspomniany ani razu w żadnym dokumencie (więcej /opt
poniżej).
Dalszą distiction pomiędzy Macos i FHS zgodny OS jest stosowanie /private
, na przykład /etc
jest dowiązanie się /private/etc
.
O /net
: Jest to mapa automountera (wymieniona w /etc/auto_master
), więcej informacji w Wikipedii .
Co powinien i powinien przejść do / opt / a co powinien / powinien przejść do / usr /? Rozumiem, że / usr / było kiedyś dla katalogów domowych użytkowników, ale skoro istnieje w / Users / - jaki jest teraz cel?
Chociaż /usr
w przeszłości był używany do umieszczania katalogów domowych użytkowników , to już nie jest przypadek.
Obecnie /usr
zawiera polecenia użytkownika ( /usr/bin
dla zwykłych użytkowników i /usr/sbin
administracyjnych, takich jak root
), biblioteki współdzielone ( /usr/lib
), strony podręcznika man ( /usr/share/man
), pliki wykonywalne, które nie powinny być uruchamiane bezpośrednio przez użytkowników ( /usr/libexec
) i inne rzeczy.
Oferuje także podkatalog /usr/local
do umieszczania programów, bibliotek i innych plików, które nie są dostarczane z podstawowym systemem operacyjnym.
/opt
ma bardzo podobną rolę /usr/local
i wydają się wymienne. Jednak z mojego doświadczenia w pracy z innych administratorów Linux / UNIX, nie wydaje się być korzystne dla /usr/local
w BSD UNIX systemów operacyjnych.
To jest moje zdanie na ten temat: macOS jest oparty na BSD i dlatego użyłbym go /usr/local
. Pamiętaj, że możesz utworzyć katalog programu, a następnie polecenia dowiązania symbolicznego do /usr/local/bin
itp., Na przykład:
/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
Kiedyś było to zwykłą praktyką także w Linuksie i UNIX, ale FHS wyraźnie zabrania tego: jeśli chcesz instalować pakiety stron trzecich w ich własnej hierarchii katalogów, powinieneś użyć /opt/<package>
zamiast tego. Należy pamiętać, że zgodność z FHS wymaga umieszczenia plików konfiguracyjnych /etc/opt/<package>
i plików zmiennych /var/opt/<package>
.
Tak więc w macOS zalecam trzymanie się /usr/local
jak opisano powyżej.
Wiem o dodatkowym oprogramowaniu, takim jak Cisco VPN i XQuartz, które się instalują /opt
, więc powyższe różnice zaczynają się zacierać.
man hier
Jak wspomniano powyżej, jest to 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