GNU/Linux >> Linux Esercitazione >  >> Linux

Cos'è BusyBox in Linux? Come usarlo?

BusyBox sta diventando popolare in questi giorni, specialmente tra gli utenti Docker. Molte immagini Docker utilizzano BusyBox per fornire un'immagine minima.

E questo potrebbe lasciare molti utenti confusi, specialmente se dai per scontati i comandi di Linux. Pensi che ls, mv e altri comandi simili facciano parte di Linux, mentre la verità è che questi comandi fanno parte del pacchetto GNU Coreutils e la maggior parte delle distribuzioni Linux lo ha preinstallato.

GNU Coreutils è quasi il fornitore de facto di vari comandi UNIX/Linux. Quasi perché ci sono sempre alternative e BusyBox è una di queste alternative a GNU Coreutils.

Cos'è BusyBox?

BusyBox è un progetto open source che fornisce un'implementazione ridotta di circa 400 comandi UNIX/Linux comuni. Ridotta? Sì. L'implementazione di BusyBox rimuove le opzioni di comando non comuni e usate raramente. Tutto si adatta a meno di 1 MB e questa immagine minima è il motivo per cui ha guadagnato popolarità tra i sistemi embedded e il dominio IoT, nonché nel mondo del cloud computing.

Non andare per le sue dimensioni. BusyBox ha spazio per sed e awk come gli editor classici (versione ridotta di nuovo) e contiene anche la propria shell. Contiene anche un comando init che può essere lanciato come PID 1. Ciò significa che BusyBox può essere configurato come alternativa a Systemd, OpenRC ecc.

BusyBox è un'ottima alternativa a GNU Coreutils, specialmente nei casi in cui le dimensioni ridotte del sistema operativo contano molto.

🗒️BusyBox ti offre comandi Linux popolari come mv, mkdir, ls ecc. Ma contiene solo le opzioni comunemente utilizzate di questi comandi. Questo minimalismo è l'USP di BusyBox.

È un problema che non si ottiene il comando Linux completo opzioni con BusyBox?

Dipende dalle tue necessità, davvero. La maggior parte delle persone non avrà mai bisogno di tutte le opzioni di un comando. Alcuni comandi Linux hanno più di 50 opzioni e scommetto che non hai mai usato tutte le opzioni nemmeno di un singolo comando Linux.

BusyBox riduce le opzioni utilizzate raramente. Ad esempio, il comando ls ha l'opzione G che rimuove il nome del gruppo dall'output dell'elenco lungo (ls -l).

Ora, penso che tu non abbia mai avuto bisogno di questa opzione. Questo è il motivo per cui non è presente nell'implementazione ls di BusyBox. Se hai davvero bisogno di un output in cui il nome del gruppo non sia incluso, tutto ciò che devi fare è usare il comando cut o awk a tale scopo.

Prendi un altro esempio. Questa è la pagina della guida del comando mv di 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

Ora, ecco la pagina della guida del comando mv da 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

Vedi la differenza?

Come ottenere BusyBox?

Esistono vari modi per ottenere BusyBox.

Se vuoi semplicemente provare BusyBox sulla tua attuale distribuzione Linux, puoi installarlo usando il gestore di pacchetti della tua distribuzione come Apt o DNF o Yum.

Su Ubuntu, puoi usare questo comando per installare BusyBox:

sudo apt install busybox

Dopodiché, se vuoi eseguire la versione BusyBox di un comando, devi prima aggiungere busybox.

busybox cat sample.txt

Se un comando non è implementato da BusyBox, genera un errore "applet non trovata".

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

In alternativa , puoi scaricare l'immagine Docker di BusyBox e sperimentarla in un contenitore in esecuzione.

Assicurati di aver installato Docker. Estrai l'immagine ufficiale della finestra mobile:

docker pull busybox

Esegui un contenitore dall'immagine e inserisci la shell BusyBox:

docker run -it --rm busybox

Ogni comando Linux che esegui qui proviene da BusyBox. Non è necessario specificarlo in modo esplicito.

Complessivamente, non hai bisogno di BusyBox su un normale sistema Linux. Hai già la versione completa dei comandi Linux da GNU Coreutils lì. Non è necessario installare una versione ridotta.

Ma BusyBox ha il suo utilizzo in aree speciali come quando si configura un sistema operativo Linux minimo per dispositivi embedded o IoT. Lo stesso vale quando vuoi mantenere piccole le dimensioni dell'immagine Docker.

Spero che tu abbia una migliore comprensione di BusyBox. Se hai bisogno di chiarimenti o di suggerimenti, faccelo sapere nei commenti.


Linux
  1. Come usare BusyBox su Linux

  2. Come uso cron in Linux

  3. Come usare TROVA in Linux

  4. Che cos'è un comando Chown in Linux e come usarlo

  5. Come usare il comando Su in Linux

Come usare traceroute su Kali Linux

Comando file Linux:cosa fa e come usarlo

Linux Tail Command:cos'è e come usarlo

Come utilizzare lo schermo Linux

Come usare du Command in Linux

Come utilizzare il terminale Linux in Android