GNU/Linux >> Linux の 問題 >  >> Linux

LinuxのBusyBoxとは何ですか?それの使い方?

BusyBoxは最近、特にDockerユーザーの間で人気が高まっています。多くのDockerイメージは、BusyBoxを使用して最小限のイメージを提供します。

また、Linuxコマンドを当然のことと見なすと、多くのユーザーが特に混乱する可能性があります。 ls、mv、およびその他のそのようなコマンドはLinuxの一部であると思いますが、実際には、これらのコマンドはGNU Coreutilsパッケージの一部であり、ほとんどのLinuxディストリビューションにはプリインストールされています。

GNU Coreutilsは、さまざまなUNIX/Linuxコマンドのほぼ事実上のプロバイダーです。ほとんどの場合、代替手段が常にあり、BusyBoxはGNUCoreutilsの代替手段の1つです。

BusyBoxとは何ですか?

BusyBoxは、約400の一般的なUNIX/Linuxコマンドの簡略化された実装を提供するオープンソースプロジェクトです。取り除いた?はい。 BusyBoxの実装により、一般的ではなく、めったに使用されないコマンドオプションが削除されます。すべてが1MB未満に収まり、この最小限の画像が、組み込みシステムやIoTドメイン、さらにはクラウドコンピューティングの世界で人気を博している理由です。

そのサイズで行かないでください。 BusyBoxには、従来のエディターのようにsedとawkのスコープがあり(バージョンを削除)、独自のシェルも含まれています。 PID 1として起動できるinitコマンドも含まれています。これは、BusyBoxをSystemd、OpenRCなどの代替として構成できることを意味します。

BusyBoxは、特にオペレーティングシステムのサイズが小さいことが重要な場合に、GNUCoreutilsの優れた代替手段です。

🗒️BusyBoxは、mv、mkdir、lsなどの一般的なLinuxコマンドを提供しますが、これらのコマンドで一般的に使用されるオプションのみが含まれています。このミニマリズムはBusyBoxのUSPです。

完全なLinuxコマンドを取得できないのは問題ですか? BusyBoxのオプション?

それは本当にあなたの必要性に依存します。ほとんどの人は、コマンドのすべてのオプションを必要とすることはありません。一部のLinuxコマンドには50を超えるオプションがあり、1つのLinuxコマンドでさえすべてのオプションを使用したことはないでしょう。

BusyBoxはめったに使用されないオプションを削減します。たとえば、lsコマンドにはオプションGがあり、ロングリスト出力(ls -l)からグループ名を削除します。

さて、私はあなたがこのオプションを必要としなかったと思います。これが、BusyBoxのls実装に存在しない理由です。グループ名が含まれていない出力が本当に必要な場合は、その目的でcutまたはawkコマンドを使用するだけです。

別の例を見てください。これは、GNUCoreutilsのmvコマンドのヘルプページです。

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

さて、これがBusyBoxのmvコマンドヘルプページです:

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

違いを見ます?

BusyBoxを入手するには?

BusyBoxを入手するにはさまざまな方法があります。

現在のLinuxディストリビューションでBusyBoxを体験したいだけの場合は、Apt、DNF、Yumなどのディストリビューションのパッケージマネージャーを使用してインストールできます。

Ubuntuでは、次のコマンドを使用してBusyBoxをインストールできます:

sudo apt install busybox

その後、BusyBoxバージョンのコマンドを実行する場合は、その前にbusyboxを追加する必要があります。

busybox cat sample.txt

コマンドがBusyBoxによって実装されていない場合、「アプレットが見つかりません」というエラーがスローされます。

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

または 、BusyBoxのDockerイメージをダウンロードして、実行中のコンテナーで体験できます。

Dockerがインストールされていることを確認してください。公式のDockerイメージをプルします:

docker pull busybox

イメージからコンテナを実行し、BusyBoxシェルに入ります:

docker run -it --rm busybox

ここで実行するすべてのLinuxコマンドはBusyBoxからのものです。明示的に指定する必要はありません。

全体として、通常のLinuxシステムではBusyBoxは必要ありません。そこにはすでにGNUCoreutilsからのLinuxコマンドのフルバージョンがあります。簡略化されたバージョンをインストールする必要はありません。

ただし、BusyBoxは、組み込みデバイスまたはIoTデバイス用に最小限のLinuxOSを構成する場合などの特別な領域で使用されます。 Dockerイメージのサイズを小さくしたい場合も同様です。

BusyBoxをよりよく理解していただければ幸いです。説明が必要な場合や提案がある場合は、コメントでお知らせください。


Linux
  1. LinuxでBusyBoxを使用する方法

  2. Linuxでcronを使用する方法

  3. LinuxでUnzipを使用する方法

  1. LinuxでFINDを使用する方法

  2. LinuxでのChownコマンドとは何ですか?その使用方法

  3. LinuxでSuコマンドを使用する方法

  1. Linuxのアクセシビリティ設定の使用方法

  2. LinuxでGoogleドライブを使用する方法

  3. どの Linux ディストリビューションが使用されているかを調べる方法