Saya membaca ini di situs web ini dan itu tidak masuk akal.
http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/basic/node32.html
Ketika UNIX pertama kali ditulis,
/bin
dan/usr/bin
secara fisik berada di dua disk berbeda:/bin
berada di disk yang lebih cepat (lebih mahal) lebih kecil, dan/usr/bin
pada disk yang lebih besar dan lebih lambat. Sekarang,/bin
adalah tautan simbolis ke/usr/bin
: mereka pada dasarnya direktori yang sama.
Tetapi ketika Anda ls
the /bin
folder, isinya jauh lebih sedikit daripada /usr/bin
folder (setidaknya di sistem saya yang sedang berjalan).
Jadi bisakah seseorang menjelaskan perbedaannya?
Apa? tidak /bin/
bukan symlink ke /usr/bin
pada sistem apa pun yang mematuhi FHS. Perhatikan bahwa masih ada Unices dan Linux populer yang mengabaikan ini - misalnya, /bin
dan /sbin
disinkronkan dengan /usr/bin
di Arch Linux (alasannya adalah Anda tidak perlu /bin
untuk penyelamatan/mode pengguna tunggal, karena Anda baru saja mem-boot CD langsung).
berisi perintah yang dapat digunakan oleh administrator sistem dan oleh pengguna, tetapi yang diperlukan saat tidak ada sistem file lain yang dipasang (mis. dalam mode pengguna tunggal). Ini juga dapat berisi perintah yang digunakan secara tidak langsung oleh skrip
Ini adalah direktori utama dari perintah yang dapat dieksekusi pada sistem.
pada dasarnya, /bin
berisi file executable yang diperlukan oleh sistem untuk perbaikan darurat, booting, dan mode satu pengguna. /usr/bin
berisi semua binari yang tidak diperlukan.
Saya akan perhatikan, bahwa mereka dapat berada di disk/partisi terpisah, /bin
harus berada pada disk yang sama dengan /
. /usr/bin
dapat berada di disk lain - walaupun perlu diketahui bahwa konfigurasi ini agak rusak untuk sementara waktu (inilah sebabnya misalnya systemd memperingatkan tentang konfigurasi ini saat boot).
Untuk kebenaran penuh, beberapa unix mungkin mengabaikan FHS, karena saya percaya ini hanya Linux Standard, saya tidak tahu bahwa itu sudah dimasukkan dalam SUS, Posix atau standar UNIX lainnya, meskipun harus IMHO. Ini adalah bagian dari LSB standar.
Pembaruan: Untuk beberapa riwayat dan alasan sebenarnya mengapa ada /usr
, baca ini: http://lists.busybox.net/pipermail/busybox/2010-December/074114.html . Juga ini .
/sbin
- Binari diperlukan untuk mem-boot, perbaikan sistem tingkat rendah, atau pemeliharaan (jalankan level 1 atau S)
/bin
- Binari diperlukan untuk fungsi sistem normal/standar di semua level run.
/usr/bin
- Aplikasi/binari distribusi dimaksudkan untuk diakses oleh pengguna yang masuk secara lokal
/usr/sbin
- Aplikasi/binari distribusi yang mendukung atau mengkonfigurasi hal-hal di/sbin.
/usr/share/bin
- Aplikasi/binari atau skrip distribusi yang dimaksudkan untuk diakses melalui web, mis. Aplikasi web Apache
*local*
- Binari bukan bagian dari distribusi; dikompilasi secara lokal atau diinstal secara manual. Biasanya tidak pernah ada /local/bin
tapi selalu /usr/local/bin
dan /usr/local/share/bin
.
Beberapa jenis "pembaruan" tentang masalah ini:
Baru-baru ini beberapa distribusi Linux bergabung /bin
ke /usr/bin
dan terkait /lib
ke /usr/lib
. Terkadang juga (/usr)/sbin
hingga /usr/bin
(Arch Linux). Jadi /usr
diharapkan akan tersedia pada saat yang sama dengan /
.
Perbedaan antara kedua hierarki dianggap sebagai kompleksitas yang tidak perlu sekarang. Idenya dulu hanya memiliki /bin
tersedia saat boot, tetapi memiliki ramdisk awal membuat ini usang.
Saya tahu Fedora Linux (2011) dan Arch Linux (2012) menggunakan cara ini dan Solaris melakukan ini untuk waktu yang lama (> 15 tahun).
Di Linux /bin
dan /usr/bin
masih terpisah karena sudah umum untuk memiliki /usr
pada partisi yang terpisah (walaupun konfigurasi ini kadang-kadang rusak). Di /bin
adalah semua perintah yang Anda perlukan jika Anda hanya memiliki /
dipasang.
Di Solaris dan Arch Linux (dan mungkin yang lain) /bin
adalah symlink ke /usr/bin
. Arch juga memiliki /sbin
dan /usr/sbin
disinkronkan dengan /usr/bin
.
Dari catatan khusus, pernyataan bahwa /bin
adalah untuk perintah "administrator sistem" dan /usr/bin
adalah untuk perintah pengguna adalah tidak benar (kecuali Anda berpikir bahwa bash
dan ls
hanya untuk admin, dalam hal ini Anda harus banyak belajar). Perintah administrator ada di /sbin
dan /usr/sbin
.
Ada banyak sistem berbasis UNIX. Linux, AIX, Solaris, BSD, dll. Kutipan asli memberikan konteks historis yang berlaku untuk semua rasa. Jika Anda melihat satu sistem tertentu, Anda akan melihat hasil yang berbeda. Kalimat terakhir dari kutipan asli hanya khusus untuk beberapa versi dan distribusi.