GNU/Linux >> Belajar Linux >  >> Linux

Apa itu BusyBox di Linux? Bagaimana cara menggunakannya?

BusyBox semakin populer akhir-akhir ini, khususnya di kalangan pengguna Docker. Banyak gambar Docker menggunakan BusyBox untuk memberi Anda gambar minimal.

Dan ini bisa membuat banyak pengguna bingung khususnya jika Anda menerima perintah Linux begitu saja. Anda pikir ls, mv, dan perintah lain semacam itu adalah bagian dari Linux, padahal sebenarnya perintah ini adalah bagian dari paket GNU Coreutils dan sebagian besar distribusi Linux telah menginstalnya sebelumnya.

GNU Coreutils hampir merupakan penyedia de facto dari berbagai perintah UNIX/Linux. Hampir karena selalu ada alternatif dan BusyBox adalah salah satu alternatif untuk GNU Coreutils.

Apa itu BusyBox?

BusyBox adalah proyek open source yang menyediakan implementasi sederhana dari sekitar 400 perintah umum UNIX/Linux. Dilucuti? Ya. Implementasi BusyBox menghapus opsi perintah yang jarang digunakan. Semuanya muat di bawah 1 MB dan gambar minimal ini adalah alasan mengapa ia mendapatkan popularitas di antara sistem tertanam dan domain IoT serta di dunia komputasi awan.

Jangan pergi dengan ukurannya. BusyBox memiliki ruang lingkup untuk sed dan awk seperti editor klasik (versi dipreteli lagi) dan berisi shell sendiri juga. Bahkan berisi perintah init yang dapat diluncurkan sebagai PID 1. Ini berarti BusyBox dapat dikonfigurasi sebagai alternatif untuk Systemd, OpenRC dll.

BusyBox adalah alternatif yang luar biasa untuk GNU Coreutils khususnya dalam kasus di mana ukuran kecil dari sistem operasi penting.

️BusyBox memberi Anda perintah Linux populer seperti mv, mkdir, ls dll tetapi hanya berisi opsi yang umum digunakan dari perintah ini. Minimalisme ini adalah USP dari BusyBox.

Apakah itu masalah karena Anda tidak mendapatkan perintah Linux lengkap pilihan dengan BusyBox?

Itu tergantung pada kebutuhan Anda, sungguh. Kebanyakan orang tidak akan pernah membutuhkan semua opsi dari suatu perintah. Beberapa perintah Linux memiliki lebih dari 50 opsi dan saya yakin Anda tidak pernah menggunakan semua opsi bahkan dari satu perintah Linux.

BusyBox mengurangi opsi yang jarang digunakan. Misalnya, perintah ls memiliki opsi G yang menghapus nama grup dari output daftar panjang (ls -l).

Sekarang, saya pikir Anda tidak pernah membutuhkan opsi ini. Inilah sebabnya mengapa tidak ada dalam implementasi ls dari BusyBox. Jika Anda benar-benar membutuhkan keluaran di mana nama grup tidak disertakan, yang harus Anda lakukan adalah menggunakan perintah cut atau awk untuk tujuan itu.

Ambil contoh lain. Ini adalah halaman bantuan dari perintah mv dari GNU Coreutils:

Usage: mv [OPTION]... [-T] SOURCE DEST
  or:  mv [OPTION]... SOURCE... DIRECTORY
  or:  mv [OPTION]... -t DIRECTORY SOURCE...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

Mandatory arguments to long options are mandatory for short options too.
      --backup[=CONTROL]       make a backup of each existing destination file
  -b                           like --backup but does not accept an argument
  -f, --force                  do not prompt before overwriting
  -i, --interactive            prompt before overwrite
  -n, --no-clobber             do not overwrite an existing file
If you specify more than one of -i, -f, -n, only the final one takes effect.
      --strip-trailing-slashes  remove any trailing slashes from each SOURCE
                                 argument
  -S, --suffix=SUFFIX          override the usual backup suffix
  -t, --target-directory=DIRECTORY  move all SOURCE arguments into DIRECTORY
  -T, --no-target-directory    treat DEST as a normal file
  -u, --update                 move only when the SOURCE file is newer
                                 than the destination file or when the
                                 destination file is missing
  -v, --verbose                explain what is being done
  -Z, --context                set SELinux security context of destination
                                 file to default type
      --help     display this help and exit
      --version  output version information and exit

Sekarang, ini adalah halaman bantuan perintah mv dari BusyBox:

Usage: mv [-fin] SOURCE DEST
or: mv [-fin] SOURCE... DIRECTORY

Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY

	-f	Don't prompt before overwriting
	-i	Interactive, prompt before overwrite
	-n	Don't overwrite an existing file

Lihat perbedaannya?

Bagaimana cara mendapatkan BusyBox?

Ada berbagai cara untuk mendapatkan BusyBox.

Jika Anda hanya ingin merasakan BusyBox pada distribusi Linux Anda saat ini, Anda dapat menginstalnya menggunakan manajer paket distribusi Anda seperti Apt atau DNF atau Yum.

Di Ubuntu, Anda dapat menggunakan perintah ini untuk menginstal BusyBox:

sudo apt install busybox

Setelah itu, jika Anda ingin menjalankan versi BusyBox dari suatu perintah, Anda harus menambahkan busybox sebelumnya.

busybox cat sample.txt

Jika sebuah perintah tidak diimplementasikan oleh BusyBox, ia akan memunculkan kesalahan bahwa 'applet tidak ditemukan'.

[email protected]:~$ busybox xyz
xyz: applet not found

Alternatifnya , Anda dapat mengunduh image Docker dari BusyBox dan mengalaminya dalam container yang sedang berjalan.

Pastikan Anda telah menginstal Docker. Tarik gambar buruh pelabuhan resmi:

docker pull busybox

Jalankan wadah dari gambar dan masukkan shell BusyBox:

docker run -it --rm busybox

Setiap perintah Linux yang Anda jalankan di sini berasal dari BusyBox. Anda tidak perlu menentukannya secara eksplisit.

Secara keseluruhan, Anda tidak memerlukan BusyBox pada sistem Linux biasa. Anda sudah memiliki versi lengkap dari perintah Linux dari GNU Coreutils di sana. Tidak perlu menginstal versi yang dipreteli.

Tetapi BusyBox memiliki penggunaannya di area khusus seperti ketika Anda mengonfigurasi OS Linux minimal untuk perangkat yang disematkan atau IoT. Hal yang sama berlaku ketika Anda ingin menjaga ukuran gambar Docker Anda tetap kecil.

Saya harap Anda memiliki pemahaman yang lebih baik tentang BusyBox. Jika Anda memerlukan klarifikasi atau memiliki saran, beri tahu saya di komentar.


Linux
  1. Cara Menggunakan Unzip di Linux

  2. Cara menggunakan Google Drive di Linux

  3. Cara menemukan distribusi Linux apa yang sedang digunakan

  1. Cara menggunakan BusyBox di Linux

  2. Bagaimana saya menggunakan cron di Linux

  3. Cara menggunakan FIND di Linux

  1. Bagaimana saya menggunakan pengaturan aksesibilitas Linux

  2. Apa itu Perintah Chown di Linux dan Cara Menggunakannya

  3. Cara menggunakan Perintah Su di Linux