GNU/Linux >> Belajar Linux >  >> Linux

Perbedaan antara /bin dan /usr/bin

Apa? tidak ada /bin/ bukan symlink ke /usr/bin pada sistem yang sesuai dengan FHS. Perhatikan bahwa masih ada Unix dan Linux populer yang mengabaikan ini - misalnya, /bin dan /sbin disinkronkan ke /usr/bin di Arch Linux (alasannya adalah Anda tidak memerlukan /bin untuk rescue/single-user-mode, karena Anda baru saja mem-boot live CD).

/bin

berisi perintah yang dapat digunakan oleh administrator sistem dan pengguna, tetapi diperlukan saat tidak ada sistem file lain yang dipasang (misalnya dalam mode pengguna tunggal). Mungkin juga berisi perintah yang digunakan secara tidak langsung oleh skrip

/usr/bin/

Ini adalah direktori utama dari perintah yang dapat dieksekusi pada sistem.

intinya, /bin berisi executable yang diperlukan oleh sistem untuk perbaikan darurat, booting, dan mode pengguna tunggal. /usr/bin berisi biner apa pun yang tidak diperlukan.

Saya perhatikan, bahwa mereka dapat berada di disk/partisi terpisah, /bin harus berada di disk yang sama dengan / . /usr/bin dapat berada di disk lain - meskipun perhatikan bahwa konfigurasi ini agak rusak untuk sementara waktu (inilah sebabnya misalnya systemd memperingatkan tentang konfigurasi ini saat boot).

Untuk kebenaran penuh, beberapa unice mungkin mengabaikan FHS, karena saya yakin ini hanya Standar Linux, saya tidak tahu bahwa itu belum disertakan dalam SUS, Posix atau standar UNIX lainnya, meskipun seharusnya IMHO. Ini adalah bagian dari standar LSB.


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 booting, perbaikan sistem level rendah, atau pemeliharaan (jalankan level 1 atau S)

/bin - Binari diperlukan untuk fungsi sistem normal/standar pada tingkat proses apa pun.

/usr/bin - Binari aplikasi/distribusi dimaksudkan untuk diakses oleh pengguna yang masuk secara lokal

/usr/sbin - Binari aplikasi/distribusi yang mendukung atau mengonfigurasi hal-hal di /sbin.

/usr/share/bin - Binari atau skrip aplikasi/distribusi dimaksudkan untuk diakses melalui web, yaitu 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 .


Semacam "pembaruan" tentang masalah ini:

Baru-baru ini beberapa distribusi Linux menggabungkan /bin ke dalam /usr/bin dan terkait /lib ke /usr/lib . Terkadang juga (/usr)/sbin ke /usr/bin (Arch Linux). Jadi /usr diharapkan tersedia bersamaan dengan / .

Perbedaan antara dua hierarki dianggap sebagai kerumitan yang tidak perlu sekarang. Idenya dulu hanya memiliki /bin tersedia saat boot, tetapi memiliki ramdisk awal membuatnya usang.

Saya mengetahui Fedora Linux (2011) dan Arch Linux (2012) melakukan hal ini dan Solaris melakukannya untuk waktu yang lama (> 15 tahun).

  • desktop gratis:TheCaseForTheUsrMerge
  • fedora:fitur UsrMove
  • arch:menggabungkan /bin, /sbin, /lib menjadi /usr/bin dan /usr/lib

Linux
  1. Linux:Perbedaan Antara /dev/console , /dev/tty Dan /dev/tty0?

  2. /usr/bin Vs /usr/local/bin Di Linux?

  3. Mengapa /bin/sh Menunjuk Ke /bin/dash Dan Bukan /bin/bash??

  1. Instal binari ke /bin, /sbin, /usr/bin dan /usr/sbin, interaksi dengan --prefix dan DESTDIR

  2. Apa perbedaan antara #!/usr/bin/env bash dan #!/usr/bin/bash?

  3. cmake --version menunjuk ke /usr/bin/cmake sementara cmake menunjuk ke /usr/local/bin

  1. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  2. Apa arti dari /usr/sbin, /usr/local/sbin dan /usr/local/bin?

  3. Kapan saya harus menggunakan #!/bin/bash dan kapan #!/bin/sh?