it-swarm-id.com

Perbedaan antara / bin dan / usr / bin

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?

92
whoami

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).

/bin

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

/usr/bin/

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.

79
xenoterracide

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.

59
LawrenceC

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).

18
JonnyJD

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.

8
bahamat

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.

5
Chris Quenelle