GNU/Linux >> Belajar Linux >  >> Linux

Cara menggunakan BusyBox di Linux

Sangat mudah untuk menerima perintah Linux begitu saja. Mereka datang dibundel dengan sistem ketika Anda menginstal Linux, dan kita sering tidak mempertanyakan mengapa mereka ada di sana. Beberapa perintah dasar, seperti cd , kill , dan echo tidak selalu aplikasi independen tetapi sebenarnya dibangun ke dalam shell Anda. Lainnya, seperti ls , mv , dan cat adalah bagian dari paket utilitas inti (seringkali GNU coreutils secara khusus). Tapi selalu ada alternatif di dunia open source, dan salah satu yang paling menarik adalah BusyBox.

Apa itu BusyBox di Linux?

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

BusyBox adalah proyek open source (GPL) yang menyediakan implementasi sederhana dari hampir 400 perintah umum, termasuk ls , mv , ln , mkdir , more , ps , gzip , bzip2 , tar , dan grep . Ini juga berisi versi bahasa pemrograman awk , editor aliran sed , pemeriksa sistem file fsck , rpm dan dpkg manajer paket, dan tentu saja, shell (sh ) yang menyediakan akses mudah ke semua perintah ini. Singkatnya, ini berisi semua perintah penting yang diperlukan untuk sistem POSIX untuk melakukan tugas pemeliharaan sistem umum serta banyak tugas pengguna dan administratif.

Bahkan, itu bahkan berisi init perintah yang dapat diluncurkan sebagai PID 1 untuk berfungsi sebagai proses induk untuk semua layanan sistem lainnya. Dengan kata lain, BusyBox dapat digunakan sebagai alternatif daemon systemd, OpenRC, sinit, init, dan peluncuran lainnya.

BusyBox sangat kecil. Sebagai executable, ukurannya di bawah 1 MB, sehingga telah mendapatkan banyak popularitas di ruang tertanam, Edge, dan IoT, di mana ruang drive sangat mahal. Di dunia container dan komputasi awan, ini juga populer sebagai dasar untuk image container Linux minimal.

Minimalisme

Bagian dari daya tarik BusyBox adalah minimalisnya. Semua perintahnya dikompilasi menjadi satu biner (busybox ), dan halaman manualnya hanya 81 halaman (menurut perhitungan saya perpipaan man untuk pr ) tetapi mencakup hampir 400 perintah.

Sebagai contoh perbandingan, berikut adalah output dari shadow versi useradd --help :

 -b, --base-dir BASE_DIR       base directory for home
 -c, --comment COMMENT         GECOS field of the new account
 -d, --home-dir HOME_DIR       home directory of the new account
 -D, --defaults                print or change the default config
 -e, --expiredate EXPIRE_DATE  expiration date of the new account
 -f, --inactive INACTIVE       password inactivity
 -g, --gid GROUP               name or ID of the primary group
 -G, --groups GROUPS           list of supplementary groups
 -h, --help                    display this help message and exit
 -k, --skel SKEL_DIR           alternative skeleton dir
 -K, --key KEY=VALUE           override /etc/login.defs
 -l, --no-log-init             do not add the user to the lastlog
 -m, --create-home             create the user's home directory
 -M, --no-create-home          do not create the user's home directory
 -N, --no-user-group           do not create a group with the user's name
 -o, --non-unique              allow users with non-unique UIDs
 -p, --password PASSWORD       encrypted password of the new account
 -r, --system                  create a system account
 -R, --root CHROOT_DIR         directory to chroot into
 -s, --shell SHELL             login shell of the new account
 -u, --uid UID                 user ID of the new account
 -U, --user-group              create a group with the same name as a user

Dan inilah versi BusyBox dari perintah yang sama:

 -h DIR    Home directory
 -g GECOS  GECOS field
 -s SHELL  Login shell
 -G GRP    Group
 -S            Create a system user
 -D            Don't assign a password
 -H            Don't create home directory
 -u UID    User id
 -k SKEL   Skeleton directory (/etc/skel)

Apakah perbedaan ini merupakan fitur atau batasan tergantung pada apakah Anda lebih suka memiliki 20 opsi atau sepuluh opsi dalam perintah Anda. Untuk beberapa pengguna dan kasus penggunaan, minimalis BusyBox menyediakan cukup untuk apa yang perlu dilakukan. Bagi yang lain, ini adalah lingkungan minimal yang baik untuk dimiliki sebagai cadangan atau sebagai dasar untuk menginstal alat yang lebih kuat seperti Bash, Zsh, GNU Awk, dan sebagainya.

Memasang BusyBox

Di Linux, Anda dapat menginstal BusyBox menggunakan manajer paket Anda. Misalnya, di Fedora dan sejenisnya:

$ sudo dnf install busybox

Di Debian dan turunannya:

$ sudo apt install busybox

Di macOS, gunakan MacPorts atau Homebrew. Di Windows, gunakan Chocolatey.

Anda dapat mengatur BusyBox sebagai shell Anda menggunakan chsh --shell perintah, diikuti dengan path ke BusyBox sh aplikasi. Saya menyimpan BusyBox di /lib64 , tetapi lokasinya tergantung di mana distribusi Anda menginstalnya.

$ which busybox
/lib64/busybox/busybox
$ chsh --shell /lib64/busybox/sh

Mengganti semua perintah umum secara grosir dengan BusyBox sedikit lebih rumit, karena sebagian besar distribusi "terprogram" untuk melihat ke paket tertentu untuk perintah tertentu. Dengan kata lain, meskipun secara teknis memungkinkan untuk mengganti init dengan init dari BusyBox , manajer paket Anda dapat menolak untuk mengizinkan Anda menghapus paket yang berisi init karena takut Anda menyebabkan sistem Anda menjadi tidak dapat di-boot. Ada beberapa distribusi yang dibangun di atas BusyBox, jadi memulai yang baru mungkin merupakan cara termudah untuk merasakan sistem yang dibangun di sekitar BusyBox.

Coba BusyBox

Anda tidak perlu mengubah shell Anda menjadi BusyBox secara permanen hanya untuk mencobanya. Anda dapat meluncurkan shell BusyBox dari shell Anda saat ini:

$ busybox sh
~ $

Sistem Anda masih memiliki versi perintah non-BusyBox yang diinstal, jadi untuk menggunakan alat BusyBox, Anda harus mengeluarkan perintah sebagai argumen ke busybox dapat dieksekusi:

~ $ busybox echo $0
sh
~ $ busybox ls --help
BusyBox vX.YY.Z (2021-08-25 07:31:48 NZST) multi-call binary.

Usage: ls [-1AaCxdLHRFplinshrSXvctu] [-w WIDTH] [FILE]...

List directory contents

 -1  One column output
 -a  Include entries that start with .
 -A  Like -a, but exclude . and ..
 -x  List by lines
[...]

Untuk pengalaman BusyBox "penuh", Anda dapat membuat symlink ke busybox untuk setiap perintah. Ini lebih mudah daripada kedengarannya, selama Anda menggunakan for-loop:

$ mkdir bbx
$ for i in $(bbx --list); do \
ln -s /path/to/busybox bbx/$i \
done

Tambahkan direktori symlink Anda di start jalur Anda, dan luncurkan BusyBox:

$ PATH=$(pwd)/bbx:$PATH bbx/sh

Sibuk

BusyBox adalah proyek yang menyenangkan dan contoh betapa minimal komputasi dapat. Baik Anda menggunakan BusyBox sebagai lingkungan yang ringan untuk komputer kuno yang telah Anda selamatkan, sebagai tempat pengguna untuk perangkat yang disematkan, untuk mencoba sistem init baru, atau hanya sebagai rasa ingin tahu, mengenal kembali diri Anda dengan familiar lama bisa menyenangkan, namun entah bagaimana baru, perintah.


Linux
  1. Bagaimana saya menggunakan cron di Linux

  2. Cara menggunakan FIND di Linux

  3. Cara menggunakan Perintah Su di Linux

  1. Bagaimana saya menggunakan pengaturan aksesibilitas Linux

  2. Cara Menggunakan Unzip di Linux

  3. Cara menggunakan Google Drive di Linux

  1. Cara menggunakan pkgsrc di Linux

  2. Cara Menggunakan Perintah Disown di Linux

  3. Cara Menggunakan Perintah SS Linux