GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué es BusyBox en Linux? ¿Cómo usarlo?

BusyBox se está volviendo popular en estos días, especialmente entre los usuarios de Docker. Muchas imágenes de Docker usan BusyBox para brindarle una imagen mínima.

Y esto podría dejar a muchos usuarios confundidos, especialmente si das por sentado los comandos de Linux. Crees que ls, mv y otros comandos similares son parte de Linux, mientras que la verdad es que estos comandos son parte del paquete GNU Coreutils y la mayoría de las distribuciones de Linux lo tienen preinstalado.

GNU Coreutils es casi el proveedor de facto de varios comandos de UNIX/Linux. Casi porque siempre hay alternativas y BusyBox es una de esas alternativas a GNU Coreutils.

¿Qué es BusyBox?

BusyBox es un proyecto de código abierto que proporciona una implementación reducida de alrededor de 400 comandos comunes de UNIX/Linux. ¿Despojado? Sí. La implementación de BusyBox elimina las opciones de comando poco comunes y rara vez utilizadas. Todo cabe por debajo de 1 MB y esta imagen mínima es la razón por la que ha ganado popularidad entre los sistemas integrados y el dominio IoT, así como en el mundo de la computación en la nube.

No te guíes por su tamaño. BusyBox tiene alcance para sed y awk como los editores clásicos (una versión simplificada nuevamente) y también contiene su propio shell. Incluso contiene un comando de inicio que se puede iniciar como PID 1. Esto significa que BusyBox se puede configurar como una alternativa a Systemd, OpenRC, etc.

BusyBox es una excelente alternativa a GNU Coreutils, especialmente en los casos en los que el pequeño tamaño del sistema operativo importa mucho.

🗒️BusyBox le brinda comandos populares de Linux como mv, mkdir, ls, etc., pero solo contiene las opciones de uso común de estos comandos. Este minimalismo es la USP de BusyBox.

¿Es un problema que no obtienes el comando completo de Linux? opciones con BusyBox?

Eso depende de tu necesidad, de verdad. La mayoría de las personas nunca necesitarán todas las opciones de un comando. Algunos comandos de Linux tienen más de 50 opciones y apuesto a que nunca usaste todas las opciones de un solo comando de Linux.

BusyBox reduce las opciones que rara vez se usan. Por ejemplo, el comando ls tiene la opción G que elimina el nombre del grupo de la salida de la lista larga (ls -l).

Ahora, creo que nunca necesitaste esta opción. Es por eso que no está presente en la implementación ls de BusyBox. Si realmente necesita una salida donde el nombre del grupo no esté incluido, todo lo que tiene que hacer es usar el comando cut o awk para ese propósito.

Toma otro ejemplo. Esta es la página de ayuda del comando mv de 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

Ahora, aquí está la página de ayuda del comando mv de 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

¿Ver la diferencia?

¿Cómo obtener BusyBox?

Hay varias formas de obtener BusyBox.

Si simplemente desea experimentar BusyBox en su distribución actual de Linux, puede instalarlo usando el administrador de paquetes de su distribución como Apt o DNF o Yum.

En Ubuntu, puede usar este comando para instalar BusyBox:

sudo apt install busybox

Después de eso, si desea ejecutar la versión BusyBox de un comando, debe agregar el cuadro ocupado antes.

busybox cat sample.txt

Si BusyBox no implementa un comando, arroja un error que dice 'applet no encontrado'.

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

Alternativamente , puede descargar la imagen de Docker de BusyBox y experimentarla en un contenedor en ejecución.

Asegúrese de tener Docker instalado. Extraiga la imagen oficial de la ventana acoplable:

docker pull busybox

Ejecute un contenedor desde la imagen e ingrese el shell de BusyBox:

docker run -it --rm busybox

Cada comando de Linux que ejecuta aquí proviene de BusyBox. No es necesario especificarlo explícitamente.

En total, no necesita BusyBox en un sistema Linux normal. Ya tiene la versión completa de los comandos de Linux de GNU Coreutils allí. No es necesario instalar una versión simplificada.

Pero BusyBox tiene su uso en áreas especiales como cuando está configurando un sistema operativo Linux mínimo para dispositivos integrados o IoT. Lo mismo ocurre cuando desea mantener pequeño el tamaño de su imagen de Docker.

Espero que tengas una mejor comprensión de BusyBox. Si necesita alguna aclaración o tiene alguna sugerencia, hágamelo saber en los comentarios.


Linux
  1. Cómo usar BusyBox en Linux

  2. Cómo uso cron en Linux

  3. Cómo usar BUSCAR en Linux

  4. ¿Qué es un comando Chown en Linux y cómo usarlo?

  5. Cómo usar Descomprimir en Linux

Cómo usar traceroute en Kali Linux

Comando de archivo de Linux:qué hace y cómo usarlo

Comando de cola de Linux:qué es y cómo usarlo

Cómo usar la pantalla de Linux

Cómo usar du Command en Linux

Cómo usar la terminal de Linux en Android