Saya ingat bahwa untuk Linux yang berjalan di embedded system, karena keterbatasan ukuran, ia tidak dapat mengemas perintah sebanyak di workstation biasa. Jadi ada do-it-all perintah yang dapat meniru hampir semua perintah (termasuk ls
, cd
, time
, dll), tapi saya tidak ingat namanya.
Saya hanya samar-samar mengingat sesuatu seperti "minibox" atau sesuatu, sepertinya memiliki "kotak" dalam namanya, apakah ada yang tahu apa namanya?
linux
command-line
embedded
wangshuaijie
sumber
sumber
cd
, itu tidak mungkin.sh
, yang memilikicd
built-in.emacs
...Jawaban:
Yang paling populer bisa BusyBox , tetapi ada juga kotak peralatan (digunakan oleh Android), kotak mainan dan mungkin yang lain.
sumber
grep
mungkin tautan ke busybox. Satu pengecualian akan menjadicd
seperti yang harus menjadi shell built-in.Anda mungkin merujuk ke Busybox , sebuah shell “all-in-one”.
sumber
BusyBox dirancang dengan cara yang cukup baru yang bisa sangat membingungkan ketika Anda mulai mencari-cari di direktori / bin Anda.
Seperti yang ditunjukkan MSalters , BusyBox hanyalah satu yang dapat dieksekusi. Tapi itu tergantung pada tautan simbolis yang dibuat untuk dieksekusi untuk setiap "perintah" di dalamnya. Dengan mengetahui nama symlink dimulai, ia tahu untuk menjalankan fungsi C untuk perintah itu.
Dengan demikian, awal direktori PuppyLinux 5.2.8 Lucid / bin saya terlihat seperti ...
Perhatikan bahwa sebagian besar perintah adalah symlinks
busybox
. Ini termasukash
shell sangat minimalis yang digunakan sebagian besar selama operasi boot. Juga perhatikan bahwa penulis distribusi memilih untuk memasukkan perintah mandiribunzip2
danbzcat
alih-alih menggunakan versi busybox. Symlinkbunzip-BB-NOTUSED
danbzcat-BB-NOTUSED
tidak benar-benar diperlukan tetapi membantu mendokumentasikan apa yang terjadi hanya untuk biaya symlink.Perhatikan juga bahwa daftar direktori yang melaporkan ukuran untuk target symlink (
ls -lL
atauls -l --dereference
) alih-alih symlink itu sendiri, akan melaporkan ukuran setiap perintah sama dengan yang ada padabusybox
. Jadi daftar yang sama dengan-L
opsi menunjukkan ...Tujuan BusyBox adalah penggunaan kembali kode secara maksimal dalam dirinya sendiri untuk meminimalkan memori dan ruang disk yang diperlukan (yaitu "jejak") untuk serangkaian perintah umum ... tanpa memerlukan shell itu sendiri.
Bash dan kerang lainnya mencapai hal yang sama. Tetapi untuk melakukannya, mereka menerapkan lingkungan commandline mereka sendiri. Tujuan ini juga merupakan salah satu alasan untuk beberapa sintaksis yang sangat kuno untuk banyak fungsi shell.
Saat ini saya menggunakan "teknik BusyBox" ini untuk perpustakaan fungsi Bash dan lebih mudah menggunakan pembungkus untuk berbagai bashism . Ini membuat saya dengan mudah "memperpanjang" perintah dengan
--help
opsi dan mematikan versi GUI saat tersedia.sumber