Was ist Linux Busybox?

青灯夜游
Freigeben: 2022-11-11 10:20:27
Original
3458 Leute haben es durchsucht

busybox ist ein Entwicklungstool zur Entwicklung von Software unter Linux-Systemen. Es handelt sich um eine Software, die mehr als 300 der am häufigsten verwendeten Linux-Befehle und -Tools integriert. Einfach ausgedrückt ist BusyBox wie eine große Toolbox. Sie integriert und komprimiert viele Tools und Befehle von Linux und enthält auch die eigene Shell des Linux-Systems. BusyBox ist eine hervorragende Alternative zu GNU Coreutils, insbesondere wenn die geringe Größe des Betriebssystems wichtig ist.

Was ist Linux Busybox?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

BusyBox erfreut sich immer größerer Beliebtheit, insbesondere bei Docker-Benutzern. Viele Docker-Images verwenden BusyBox, um Ihnen minimale Images bereitzustellen.

Dies kann für viele Benutzer besonders verwirrend sein, wenn Sie Linux-Befehle für selbstverständlich halten und denken, dass ls, mv und andere solche Befehle Teil von Linux sind, obwohl diese Befehle tatsächlich Teil des GNU Coreutils-Pakets und der meisten Linux-Geräte sind Distributionen sind vorinstalliert.

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

Was ist BusyBox?

busybox ist ein Entwicklungstool zur Entwicklung von Software unter Linux-Systemen.

BusyBox ist ein Open-Source-Projekt, das optimierte Implementierungen von etwa 400 gängigen UNIX/Linux-Befehlen bereitstellt.

BusyBox ist eine Software, die mehr als 300 der am häufigsten verwendeten Linux-Befehle und -Tools integriert. BusyBox enthält einige einfache Tools wie ls, cat, echo usw. sowie einige größere und komplexere Tools wie grep, find, mount und telnet. Manche Leute nennen BusyBox das Schweizer Taschenmesser unter den Linux-Tools. Einfach ausgedrückt ist BusyBox wie eine große Toolbox. Sie integriert und komprimiert viele Tools und Befehle von Linux und enthält auch die eigene Shell des Linux-Systems.

Die BusyBox-Implementierung entfernt ungewöhnliche, selten verwendete Befehlsoptionen, alles ist weniger als 1 MB groß. Dieses minimale Image ist der Grund, warum es in der eingebetteten System- und IoT-Welt sowie in der Cloud-Computing-Welt beliebt ist.

Schauen Sie nicht auf die Größe, BusyBox hat den Umfang von sed und awk wie ein klassischer Editor (wieder eine Lite-Version), es enthält auch eine eigene Shell, es enthält sogar einen Init-Befehl, der als PID 1 gestartet werden kann, was bedeutet, dass BusyBox als Ersatz für Systemd, OpenRC usw. konfiguriert werden kann.

BusyBox ist eine großartige Alternative zu GNU Coreutils, insbesondere wenn die geringe Größe des Betriebssystems wichtig ist.

BusyBox bietet Ihnen beliebte Linux-Befehle wie mv, mkdir, ls usw., enthält jedoch nur allgemeine Optionen für diese Befehle. Dieser Minimalismus ist das Alleinstellungsmerkmal von BusyBox.

Ist es ein Problem, dass Sie mit BusyBox nicht über vollständige Linux-Befehlsoptionen verfügen?

Es hängt wirklich von Ihren Bedürfnissen ab, die meisten Menschen werden nie alle Optionen des Befehls benötigen. Einige Linux-Befehle verfügen über mehr als 50 Optionen, und ich wette, Sie haben noch nie alle Optionen für einen einzelnen Linux-Befehl verwendet.

BusyBox reduziert selten verwendete Optionen, zum Beispiel verfügt der Befehl ls über die Option G, die Gruppennamen aus der Ausgabe langer Listen entfernt (ls -l).

Was ist Linux Busybox?

Nun, ich glaube nicht, dass Sie diese Option jemals benötigen. Deshalb gibt es sie in der BusyBox-Implementierung von ls nicht. Wenn Sie eine Ausgabe benötigen, die die Gruppennamen nicht enthält, müssen Sie nur dies tun Tun Sie dies. Verwenden Sie zu diesem Zweck den Befehl „cut“ oder „awk“.

Gib mir noch ein Beispiel. Dies ist die Hilfeseite für den mv-Befehl 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
Nach dem Login kopieren

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
Nach dem Login kopieren

Sehen Sie den Unterschied?

Wie bekomme ich BusyBox?

BusyBox kann auf viele Arten erworben werden.

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

Unter Ubuntu können Sie BusyBox mit dem folgenden Befehl installieren:

sudo apt install busybox
Nach dem Login kopieren

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

busybox cat sample.txt
Nach dem Login kopieren

Wenn BusyBox den Befehl nicht implementiert, wird die Fehlermeldung „Applet nicht gefunden“ ausgegeben.

abhishek@LHB:~$ busybox xyz
xyz: applet not found
Nach dem Login kopieren

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

Stellen Sie sicher, dass Sie Docker installiert haben, rufen Sie das offizielle Docker-Image ab:

docker pull busybox
Nach dem Login kopieren

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

docker run -it --rm busybox
Nach dem Login kopieren

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

Was ist Linux Busybox?

Zusammenfassend lässt sich sagen, dass Sie BusyBox nicht auf einem normalen Linux-System verwenden müssen, Sie verfügen bereits über die Vollversion der Linux-Befehle von GNU Coreutils. Die Lite-Version muss nicht installiert werden.

Aber BusyBox hat seine Einsatzmöglichkeiten in speziellen Bereichen, etwa bei der Konfiguration eines minimalen Linux-Betriebssystems für Embedded- oder IoT-Geräte. Dies gilt auch, wenn Sie die Größe Ihres Docker-Images klein halten möchten.

Verwandte Empfehlungen: „Linux-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist Linux Busybox?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage