Apakah ada manual atau panduan untuk apa semua direktori bawaan harus digunakan? Seperti apa / home /, atau / net /?
Lihatlah Panduan Pemrograman Sistem File untuk informasi terbaru dan man hier
di Terminal, yang menyediakan "sketsa historis" dari hierarki sistem file (termasuk di akhir jawaban ini untuk referensi).
Sebuah komentar untuk pertanyaan Anda menyebutkan Standar Hierarki Filesystem . Anda mungkin akan sampai pada kesimpulan, setelah membaca Panduan Pemrograman Sistem File dan man hier
, bahwa macOS tidak mengikuti FHS , itu lebih merupakan hal Linux. Tentu saja, ada kesamaan antara FHS dan tata letak sistem file di macOS karena asal UNIX yang umum, tetapi perbedaannya mencolok. macOS tidak menggunakan ini:
/boot
folder -> penggunaan macOS /System/Library/Kernels
sebagai gantinya (dalam versi macOS yang lebih lama, folder yang berisi kernel tadi /
)
/home
folder -> menggunakan macOS /Users
sebagai gantinya
/root
folder -> menggunakan macOS /var/root
sebagai gantinya
dan /opt
tidak disebutkan tidak satu kali dalam dokumen apa pun (lebih lanjut di /opt
bawah.)
Sebuah distiction lebih lanjut antara MacOS dan OS FHS-compliant adalah penggunaan /private
, misalnya /etc
adalah symlink untuk /private/etc
.
Tentang /net
: Ini adalah peta automounter (terdaftar di /etc/auto_master
), lihat Wikipedia untuk informasi lebih lanjut.
Apa yang harus dan harus dimasukkan ke / opt / dan apa yang harus / tidak masuk ke / usr /? Pemahaman saya adalah bahwa / usr / digunakan untuk direktori home pengguna, tetapi karena ada di / Users / - apa tujuannya sekarang?
Meskipun /usr
dulu digunakan untuk menempatkan direktori home para pengguna , itu tidak lagi menjadi masalah.
Saat ini, /usr
berisi perintah pengguna (dalam /usr/bin
untuk pengguna normal dan /usr/sbin
untuk pengguna administratif, seperti root
), pustaka bersama ( /usr/lib
), halaman manual ( /usr/share/man
), executable yang tidak boleh dijalankan langsung oleh pengguna ( /usr/libexec
) dan hal-hal lain.
Ia juga menawarkan subdirektori,, /usr/local
untuk menempatkan program, pustaka, dan file lain yang tidak datang dengan OS dasar.
/opt
memiliki peran yang sangat mirip /usr/local
dan mereka tampaknya dapat dipertukarkan. Namun, dari pengalaman saya bekerja dengan sysadmin Linux / UNIX lainnya, tampaknya ada preferensi untuk /usr/local
di OS UNIX berbasis BSD.
Jadi ini adalah pendapat saya: macOS berbasis BSD dan akibatnya saya akan menggunakan /usr/local
. Perhatikan bahwa Anda dapat membuat direktori program dan kemudian perintah symlink ke /usr/local/bin
, dll, misalnya:
/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
Ini dulunya merupakan praktik yang biasa di Linux dan UNIX juga, tetapi FHS secara eksplisit melarangnya : jika Anda ingin menginstal paket pihak ketiga dalam hierarki direktori mereka sendiri, Anda harus menggunakannya /opt/<package>
. Perhatikan bahwa kepatuhan FHS mengharuskan untuk memasukkan file konfigurasi /etc/opt/<package>
dan file variabel /var/opt/<package>
.
Jadi, di macOS, saya sarankan Anda tetap /usr/local
seperti yang dijelaskan di atas.
Saya mengetahui perangkat lunak tambahan seperti Cisco VPN dan XQuartz yang menginstal /opt
, sehingga perbedaan di atas mulai kabur.
man hier
Seperti disebutkan di atas ini adalah 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