GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist BusyBox unter Linux? Wie benutzt man es?

BusyBox wird heutzutage immer beliebter, insbesondere bei Docker-Benutzern. Viele Docker-Images verwenden BusyBox, um Ihnen ein minimales Image bereitzustellen.

Und dies könnte viele Benutzer verwirren, insbesondere wenn Sie Linux-Befehle als selbstverständlich ansehen. Sie denken, dass ls, mv und andere derartige Befehle Teil von Linux sind, während die Wahrheit ist, dass diese Befehle Teil des GNU Coreutils-Pakets sind und die meisten Linux-Distributionen es vorinstalliert haben.

GNU Coreutils ist praktisch der De-facto-Anbieter verschiedener UNIX/Linux-Befehle. Fast, weil es immer Alternativen gibt und BusyBox eine solche Alternative zu GNU Coreutils ist.

Was ist BusyBox?

BusyBox ist ein Open-Source-Projekt, das eine abgespeckte Implementierung von rund 400 gängigen UNIX/Linux-Befehlen bereitstellt. Vereinfachte? Ja. Die BusyBox-Implementierung entfernt die ungewöhnlichen, selten verwendeten Befehlsoptionen. Alles passt unter 1 MB und dieses minimale Bild ist der Grund, warum es bei eingebetteten Systemen und im IoT-Bereich sowie in der Cloud-Computing-Welt an Popularität gewonnen hat.

Gehen Sie nicht nach seiner Größe. BusyBox hat Spielraum für sed und awk wie klassische Editoren (wieder abgespeckte Version) und enthält auch eine eigene Shell. Es enthält sogar einen Init-Befehl, der als PID 1 gestartet werden kann. Das bedeutet, dass BusyBox als Alternative zu Systemd, OpenRC usw. konfiguriert werden kann.

BusyBox ist eine hervorragende Alternative zu GNU Coreutils, insbesondere in Fällen, in denen die geringe Größe des Betriebssystems eine große Rolle spielt.

🗒️BusyBox bietet Ihnen beliebte Linux-Befehle wie mv, mkdir, ls usw., enthält jedoch nur die häufig verwendeten Optionen dieser Befehle. Dieser Minimalismus ist der USP von BusyBox.

Ist es ein Problem, dass Sie nicht den vollständigen Linux-Befehl erhalten Optionen mit BusyBox?

Das hängt wirklich von Ihrem Bedarf ab. Die meisten Menschen werden nie alle Optionen eines Befehls benötigen. Einige Linux-Befehle haben mehr als 50 Optionen und ich wette, Sie haben nie alle Optionen eines einzigen Linux-Befehls verwendet.

BusyBox reduziert die selten verwendeten Optionen. Beispielsweise hat der Befehl ls die Option G, die den Gruppennamen aus der Ausgabe der langen Liste entfernt (ls -l).

Nun, ich denke, Sie haben diese Option nie gebraucht. Aus diesem Grund ist es in der ls-Implementierung von BusyBox nicht vorhanden. Wenn Sie wirklich eine Ausgabe benötigen, in der der Gruppenname nicht enthalten ist, brauchen Sie zu diesem Zweck nur den Befehl cut oder awk zu verwenden.

Nehmen Sie ein anderes Beispiel. Dies ist die Hilfeseite des mv-Befehls von 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

Hier ist nun die Hilfeseite für den mv-Befehl von 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

Sieh den Unterschied?

Wie bekomme ich BusyBox?

Es gibt verschiedene Möglichkeiten, BusyBox zu erhalten.

Wenn Sie BusyBox einfach auf Ihrer aktuellen Linux-Distribution erleben möchten, können Sie es mit dem Paketmanager Ihrer Distribution wie Apt oder DNF oder Yum installieren.

Unter Ubuntu können Sie diesen Befehl verwenden, um BusyBox zu installieren:

sudo apt install busybox

Wenn Sie danach die BusyBox-Version eines Befehls ausführen möchten, müssen Sie busybox davor hinzufügen.

busybox cat sample.txt

Wenn ein Befehl nicht von BusyBox implementiert wird, wirft es einen Fehler, dass 'Applet nicht gefunden'.

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

Alternativ , können Sie das Docker-Image von BusyBox herunterladen und in einem laufenden Container testen.

Bitte stellen Sie sicher, dass Sie Docker installiert haben. Ziehen Sie das offizielle Docker-Image:

docker pull busybox

Führen Sie einen Container aus dem Image aus und rufen Sie die BusyBox-Shell auf:

docker run -it --rm busybox

Jeder Linux-Befehl, den Sie hier ausführen, kommt von BusyBox. Sie müssen es nicht explizit angeben.

Insgesamt brauchen Sie BusyBox auf einem normalen Linux-System nicht. Sie haben dort bereits die Vollversion der Linux-Befehle von GNU Coreutils. Es besteht keine Notwendigkeit, eine abgespeckte Version zu installieren.

BusyBox wird jedoch in speziellen Bereichen verwendet, z. B. wenn Sie ein minimales Linux-Betriebssystem für eingebettete oder IoT-Geräte konfigurieren. Das Gleiche gilt, wenn Sie die Größe Ihres Docker-Images klein halten möchten.

Ich hoffe, Sie haben ein besseres Verständnis von BusyBox. Wenn Sie eine Klärung benötigen oder einen Vorschlag haben, lassen Sie es mich bitte in den Kommentaren wissen.


Linux
  1. So verwenden Sie BusyBox unter Linux

  2. Wie ich Cron unter Linux verwende

  3. So verwenden Sie FIND unter Linux

  4. Was ist ein Chown-Befehl unter Linux und wie wird er verwendet?

  5. So verwenden Sie Unzip unter Linux

So verwenden Sie Traceroute unter Kali Linux

Linux-Dateibefehl:Was macht er und wie wird er verwendet?

Linux-Tail-Befehl:Was es ist und wie man es verwendet

So verwenden Sie den Linux-Bildschirm

So verwenden Sie du Command unter Linux

So verwenden Sie das Linux-Terminal in Android