Bash
À quoi il sert
Bash (Bourne Again SHell), publié en 1989 par le projet GNU pour remplacer le shell de Bourne d'Unix, est à la fois l'interpréteur des sessions interactives et un langage de script. Il lit une ligne, la découpe en mots, applique ses expansions (variables, substitutions de commandes, motifs de fichiers), met en place les redirections, puis exécute les commandes internes lui-même et les programmes externes dans des processus enfants. L'édition de la ligne, l'historique et la complétion passent par la bibliothèque Readline.
Quand le choisir
Pour travailler en ligne de commande sur un serveur Linux, où il est presque toujours présent, et pour des scripts d'automatisation courts qui enchaînent des commandes du système. Au-delà de quelques centaines de lignes, ou dès qu'il faut des structures de données, traiter du JSON ou gérer finement les erreurs, un langage comme Python devient plus sûr et plus lisible. Pour un script qui doit tourner partout, y compris dans des images minimales sans Bash (Alpine, distroless), on écrit du shell POSIX (#!/bin/sh).
Points d'attention
- Sur Debian et Ubuntu,
/bin/shn'est pas Bash mais Dash : un script qui commence par#!/bin/shet utilise des extensions de Bash ([[ ]], tableaux) échoue. Déclarez#!/bin/bashsi vous utilisez Bash. - Les variables non protégées par des guillemets sont découpées en mots puis développées comme motifs :
"$variable"par défaut. - Les alias et la configuration de
~/.bashrcne s'appliquent qu'aux shells interactifs, pas aux scripts. - L'historique (
~/.bash_history) conserve en clair les commandes tapées, secrets compris ;HISTCONTROL=ignorespaceexclut les lignes qui commencent par une espace. help commandedocumente les commandes internes, quemanne couvre pas.
Par où commencer
La leçon Le terminal et le shell du cours Linux : premiers pas, puis le cours Bash pour l'automatisation.