Busyboxは、そのマニュアルページで組み込みLinuxのスイスアーミーナイフとして説明されています。一般的なUNIXユーティリティの小さなバージョンを1つの小さな実行可能ファイルに結合します。これは、more、less、head、tail、grep、awk、sed、dpkgなどのLinuxコマンドの約400の実装を提供し、すべて1つのバイナリにコンパイルされます。
この実行可能ファイルはサイズが小さい(1MB未満)ため、RAMディスク、組み込みシステム、モバイルデバイスなどで一時的なオペレーティングシステム全体を実行するなど、ディスク容量が制限されている状況で役立ちます。
Busybox 呼び出された名前を確認し、目的のプログラムに従って動作します。たとえば、シンボリックリンク lsを介してbusyboxを呼び出す場合などです。 、 mkdir を介して呼び出すと、同様にlsコマンドに似たアクションが実行されます。 シンボリックリンク。mkdirと同様のアクションを実行します。 。
LinuxへのBusyBoxのインストール
Linuxの場合 、 BusyBoxをインストールできます 図のようにデフォルトのパッケージマネージャーを使用します。
$ sudo apt install busybox [On Debian, Ubuntu and Mint] $ sudo yum install busybox [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a sys-apps/busybox [On Gentoo Linux] $ sudo pacman -S busybox [On Arch Linux] $ sudo zypper install busybox [On OpenSUSE] $ sudo apk add busybox [On Alpine] $ docker run cmd.cat/busybox busybox [On Docker]
現在のLinuxディストリビューションがここに記載されていない場合は、インストール方法に関するリファレンスセクションのリンクを確認してください。
LinuxでBusyBoxを使用する方法
開始するには、コマンドbusyboxを実行します オプションやフラグなし。
# busybox
出力は、busyboxでサポートされているすべてのコマンドとその他の便利なオプションのリストです。
正確なコマンドを表示するには、次のようにリストします。
# busybox --list
作成したバイナリのファイルサイズを表示します。
# cd /usr/sbin/ && du -h busybox
Linuxシェルとbusyboxシェルのコマンドのオプションを比較すると、はるかに明確な画像が得られます。
# grep --help [Shell] # busybox grep --help [Busybox]
両方の実行の出力からわかるように、Linuxシェルのオプションの一部はbusyboxからの出力では使用できません。ほとんどの場合、IoTデバイスなどの一般的なアプリケーションで特定のタスクを実行するために必要なのはbusyboxオプションだけです。
busyboxを使用できるようにするため コマンドの場合、busyboxキーワードの前にコマンドを記述します。たとえば、記述したgrepコマンドを使用して文字列を検索します。
# busybox grep "SearchString" file.txt
上記のコマンドは、Linuxシェルのコマンドと同様に機能します。
または、busyboxシェルにアクセスして、次のようにコマンドを実行する必要があるたびにbusyboxキーワードを使用しないようにすることもできます。
# busybox sh
シェルにいる間は、Linuxシェルにいるかのように通常どおりコマンドを実行できます。
# grep "SearchString" file.txt
シェルを終了するには書き込みます。
# exit
Busybox 限られたリソースとサイズの最適化を考慮して書かれています。そのモジュール性により、コンパイル時にコマンド/機能を含めたり除外したりできます。必要なコンポーネントのみを含めることができるため、モバイル、組み込みなどのシステムでの実装を簡単にカスタマイズできます。
一般的に言って、Linuxシステムにはbusyboxは必要ありません。これは、すでに完全なパッケージが用意されているためです。前述のように、使用するディスク容量が限られている場合に便利です。