GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que BusyBox sous Linux ? Comment l'utiliser?

BusyBox devient populaire ces jours-ci, en particulier parmi les utilisateurs de Docker. De nombreuses images Docker utilisent BusyBox pour vous fournir une image minimale.

Et cela pourrait laisser de nombreux utilisateurs confus, en particulier si vous considérez les commandes Linux comme allant de soi. Vous pensez que ls, mv et d'autres commandes de ce type font partie de Linux, alors que la vérité est que ces commandes font partie du package GNU Coreutils et que la plupart des distributions Linux l'ont préinstallé.

GNU Coreutils est presque le fournisseur de facto de diverses commandes UNIX/Linux. Presque parce qu'il y a toujours des alternatives et que BusyBox est l'une de ces alternatives à GNU Coreutils.

Qu'est-ce que BusyBox ?

BusyBox est un projet open source qui fournit une implémentation simplifiée d'environ 400 commandes UNIX/Linux courantes. Dépouillée? Oui. L'implémentation de BusyBox supprime les options de commande rares et rarement utilisées. Tout tient sous 1 Mo et cette image minimale est la raison pour laquelle elle a gagné en popularité parmi les systèmes embarqués et le domaine IoT ainsi que dans le monde du cloud computing.

Ne vous fiez pas à sa taille. BusyBox a de la place pour sed et awk comme les éditeurs classiques (version simplifiée à nouveau) et il contient également son propre shell. Il contient même une commande init qui peut être lancée en tant que PID 1. Cela signifie que BusyBox peut être configuré comme une alternative à Systemd, OpenRC etc.

BusyBox est une superbe alternative à GNU Coreutils, spécialement dans les cas où la petite taille du système d'exploitation compte beaucoup.

🗒️BusyBox vous donne des commandes Linux populaires comme mv, mkdir, ls etc mais il ne contient que les options couramment utilisées de ces commandes. Ce minimalisme est l'USP de BusyBox.

Est-ce un problème que vous n'obteniez pas la commande Linux complète options avec BusyBox ?

Cela dépend de votre besoin, vraiment. La plupart des gens n'auront jamais besoin de toutes les options d'une commande. Certaines commandes Linux ont plus de 50 options et je parie que vous n'avez jamais utilisé toutes les options d'une seule commande Linux.

BusyBox réduit les options rarement utilisées. Par exemple, la commande ls a l'option G qui supprime le nom du groupe de la sortie de la longue liste (ls -l).

Maintenant, je pense que vous n'avez jamais eu besoin de cette option. C'est pourquoi il n'est pas présent dans l'implémentation ls de BusyBox. Si vous avez vraiment besoin d'une sortie où le nom du groupe n'est pas inclus, tout ce que vous avez à faire est d'utiliser la commande cut ou awk à cette fin.

Prenons un autre exemple. Voici la page d'aide de la commande 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

Maintenant, voici la page d'aide de la commande 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

Regarde la différence?

Comment obtenir BusyBox ?

Il existe différentes façons d'obtenir BusyBox.

Si vous voulez simplement faire l'expérience de BusyBox sur votre distribution Linux actuelle, vous pouvez l'installer en utilisant le gestionnaire de packages de votre distribution comme Apt ou DNF ou Yum.

Sur Ubuntu, vous pouvez utiliser cette commande pour installer BusyBox :

sudo apt install busybox

Après cela, si vous souhaitez exécuter la version BusyBox d'une commande, vous devez ajouter busybox avant.

busybox cat sample.txt

Si une commande n'est pas implémentée par BusyBox, elle génère une erreur "applet introuvable".

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

Alternativement , vous pouvez télécharger l'image Docker de BusyBox et en faire l'expérience dans un conteneur en cours d'exécution.

Veuillez vous assurer que Docker est installé. Extrayez l'image docker officielle :

docker pull busybox

Exécutez un conteneur à partir de l'image et entrez dans le shell BusyBox :

docker run -it --rm busybox

Chaque commande Linux que vous exécutez ici provient de BusyBox. Vous n'avez pas besoin de le spécifier explicitement.

Dans l'ensemble, vous n'avez pas besoin de BusyBox sur un système Linux standard. Vous avez déjà la version complète des commandes Linux de GNU Coreutils ici. Il n'est pas nécessaire d'installer une version simplifiée.

Mais BusyBox a son utilisation dans des domaines particuliers, comme lorsque vous configurez un système d'exploitation Linux minimal pour un appareil intégré ou IoT. Il en va de même lorsque vous souhaitez que la taille de votre image Docker reste petite.

J'espère que vous avez une meilleure compréhension de BusyBox. Si vous avez besoin d'éclaircissements ou si vous avez une suggestion, n'hésitez pas à me le faire savoir dans les commentaires.


Linux
  1. Comment utiliser BusyBox sous Linux

  2. Comment j'utilise cron sous Linux

  3. Comment utiliser FIND sous Linux

  4. Qu'est-ce qu'une commande Chown sous Linux et comment l'utiliser

  5. Comment utiliser la commande Su sous Linux

Comment utiliser traceroute sur Kali Linux

Commande de fichier Linux :que fait-elle et comment l'utiliser

Commande Linux Tail :qu'est-ce que c'est et comment l'utiliser

Comment utiliser l'écran Linux

Comment utiliser du Command sous Linux

Comment utiliser le terminal Linux dans Android