Pertanyaan Perbedaan antara / bin, / sbin, / usr / bin, / usr / sbin, / usr / local / bin, / usr / local / sbin


Saya memiliki enam direktori dengan file perintah. Ini adalah /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin dan /usr/local/sbin.

Apa perbedaan antara ini? Jika saya menulis skrip saya sendiri, di mana saya harus menambahkannya?


Terkait:


221
2018-06-14 07:13


asal


Pertanyaan terkait: unix.stackexchange.com/questions/8656/… - Gabriel Staples
@Keelan Pertanyaan Anda mendekati pertanyaan yang saya posting setahun yang lalu: askubuntu.com/questions/830074/… - WinEunuuchs2Unix


Jawaban:


Silakan merujuk ke Filesystem Hierarchy Standard (FHS) untuk Linux untuk ini.

  • /bin : Untuk binari dapat digunakan sebelum /usr partisi sudah terpasang. Ini digunakan untuk binari trivial yang digunakan pada tahap boot awal atau yang Anda perlukan untuk mem-boot mode single-user. Pikirkan binari seperti cat, ls, dll.

  • /sbin  : Sama, tetapi untuk binari dengan hak superuser (root) diperlukan.

  • /usr/bin : Sama seperti dulu, tapi untuk binari sistem-lebar umum.

  • /usr/sbin : Sama seperti di atas, tetapi untuk binari dengan hak superuser (root) diperlukan.


jika saya menulis skrip saya sendiri, di mana saya harus menambahkan ini?

Bukan dari salah satu di atas. Kamu harus menggunakan /usr/local/bin atau /usr/local/sbin untuk skrip yang tersedia di seluruh sistem. Itu local path berarti itu tidak dikelola oleh paket sistem (ini sebuah kesalahan untuk paket Debian / Ubuntu).

Untuk skrip yang dilindungi pengguna, gunakan ~/bin (folder bin pribadi di direktori rumah Anda).

The FHS mengatakan untuk /usr/local:

Hirarki tersier untuk data lokal, khusus untuk host ini. Biasanya memiliki subdirektori lebih lanjut, mis., bin/, lib/, share/.


291
2018-06-14 07:17



jadi / bin adalah tempat semua file inti diinstal. seperti ls, cat, pwd, dll? Jadi, / usr / bin adalah tempat aplikasi yang dipasang pengguna? apa sajakah contoh dari apa yang seharusnya ada di / usr / bin? - Patoshi パトシ
Apakah menempatkan skrip di /bin menyebabkan masalah? Saya telah memindahkan skrip saya sesuai dengan jawaban Anda tetapi saya masih penasaran - Rumesh
@RumeshSudhaharan Anda tidak boleh melakukan itu, karena dikelola oleh manajemen paket. Jika ada paket lain yang juga ingin menggunakan jalur itu, itu akan menimpa file Anda. File dalam paket tidak dapat tumpang tindih (setidaknya untuk repositori resmi), jadi Anda lebih aman ketika menginstal di jalur lokal. Juga, ini hanya demi kenyamanan dan keamanan Anda sendiri. Di jalur lokal Anda tidak dapat mengacaukan sistem dengan cara yang buruk dan Anda tidak dapat secara tidak sengaja mengganti sistem biner. - gertvdijk
Saya suka penjelasan di halaman kesalahan: Severity:Serious Certainty:Certain - cutrightjm
Saya telah menaruh beberapa file di / usr / local / bin dan saya dapat menjalankannya, namun saya tidak dapat mengeditnya, ls -la tidak menunjukkan apa-apa - M. Reza Nasirloo


Saya memiliki pertanyaan serupa sendiri setahun yang lalu: Direktori terbaik untuk menempatkan skrip bash saya?

Direktori sistem untuk binari

man hier (Hirarki) daftar semua direktori. Untuk mendapatkan yang hanya untuk penggunaan binari:

$ man hier | grep -E 'bin$|sbin$|^.{7}(/bin)|^.{7}(/sbin)' -A2

       /bin   This directory contains executable programs which are needed in single user
              mode and to bring the system up or repair it.

--
       /sbin  Like  /bin,  this  directory  holds commands needed to boot the system, but
              which are usually not executed by normal users.

--
       /usr/X11R6/bin
              Binaries  which  belong  to the X-Window system; often, there is a symbolic
              link from the more traditional /usr/bin/X11 to here.
--
       /usr/bin
              This  is the primary directory for executable programs.  Most programs exe‐
              cuted by normal users which are not needed for booting or for repairing the
--
       /usr/local/bin
              Binaries for programs local to the site.

--
       /usr/local/sbin
              Locally installed programs for system administration.

--
       /usr/sbin
              This directory contains program binaries for  system  administration  which
              are  not  essential  for the boot process, for mounting /usr, or for system

Di mana menaruh skrip Anda sendiri?

Agar semua pengguna dapat mengakses skrip Anda, Anda dapat memasukkannya /usr/local/bin. Perlu diingat yang Anda butuhkan sudo akses untuk menambah / mengubah file di sini. Lihat: Apakah ada tempat standar untuk menempatkan skrip Linux kustom?

Untuk skrip ID pengguna Anda sendiri, masukkan mereka /home/YOUR_NAME/bin. Perlu diingat Anda harus membuat direktori ini terlebih dahulu dan luncurkan kembali terminal untuk mendapatkan jalur yang disiapkan secara otomatis oleh ~/.profile. Lihat: Bagaimana cara menambahkan / home / username / bin ke $ PATH?


Apa yang saya tahu saya tidak tahu

Saya sedang mempertimbangkan untuk mengambil beberapa skrip bash yang lebih rumit Tanyakan Ubuntu dan mengaturnya dengan memasang skrip github. Berikut beberapa contohnya:

saya berpikir skrip harus dipasang /usr/bin yang ada di $ PATH, tapi saya belum yakin di tempat yang tepat.


3
2018-06-11 23:44



Saya menghargai usaha Anda, tetapi, kecuali bagian "Apa yang saya tahu saya tidak tahu", Anda mengulangi jawaban gertvdijk. - danzel
@danzel Saya pikir bagian kuncinya adalah man hier bagian yang jawaban gertvdijk tidak alamat. yaitu Anda bisa mendapatkan struktur hierarkis direktori di baris perintah tanpa harus membacanya di web (yaitu di sini). - WinEunuuchs2Unix
itu adalah informasi yang menarik, saya setuju. Tapi gertvdijk sudah menyebutkan Standar Hirarki Filesystem (yang man hier adalah kutipan IMO yang tidak cukup informasi. Namun, ini mungkin pendapat pribadi saya. - danzel
@danzel Saya setuju situs web memiliki lebih banyak analisis mendalam daripada apa yang ada di hard drive kami. Saya hanya mencoba untuk menunjukkan informasi pada hard drive kami tanpa menggunakan Internet. Selain yang dikutip link wikipedia adalah hilang  /usr/X11R6/bin dan /usr/local/bin yang termasuk dalam man heir. - WinEunuuchs2Unix