Kennisbank › Bash Shell › bash: Bash et le shell
bash shell starter 11 September 2026

bash: Bash et le shell

Bash, le Bourne Again Shell, est l'un des shells en ligne de commande les plus utilisés sur les systèmes de type Unix. Un interpréteur interactif puissant et le shell par défaut de la plupart des distributions Linux.

Bash, pour Bourne Again Shell en toutes lettres, est l'un des shells en ligne de commande les plus utilisés dans les systèmes d'exploitation de type Unix. C'est un environnement interactif puissant qui permet aux utilisateurs de piloter des systèmes au moyen d'instructions textuelles. Bash est surtout connu comme le shell par défaut sur de nombreuses distributions Linux et est également fourni par défaut avec macOS. Il fait partie du projet GNU et a été conçu comme un remplacement libre du Bourne shell original (sh), développé en 1979 par Stephen Bourne pour Unix.

Bash a été écrit par Brian Fox, un programmeur qui travaillait pour le compte de la Free Software Foundation (FSF) dans le cadre du projet GNU. L'objectif du projet GNU est de développer un système d'exploitation entièrement libre, et un shell en était un élément crucial. Fox a commencé à écrire Bash le 10 janvier 1988. C'est une date exacte citée dans plusieurs sources, qui marque le début du développement de ce qui allait devenir l'un des composants logiciels les plus influents du monde de l'open source.

La première version bêta de Bash, la version 0.99, est apparue en juin 1989. La date précise varie selon les sources : certaines mentionnent le 7 juin 1989, d'autres le 8 juin 1989. Quelle que soit la date exacte, ce moment constitue un jalon dans l'histoire des systèmes de type Unix, car il a marqué la disponibilité d'un shell entièrement fonctionnel et libre, compatible avec le Bourne shell. Le nom « Bourne Again Shell » est un jeu de mots sur le nom de Stephen Bourne, le créateur du sh original, et exprime en même temps la renaissance du shell sous une forme nouvelle, libre et améliorée.

Bash a été développé pour conserver les fonctionnalités du Bourne shell, tout en les enrichissant de caractéristiques utiles provenant d'autres shells, comme le C shell (csh) et le Korn shell (ksh). Il offre entre autres la prise en charge de l'historique des commandes, la complétion par tabulation, le contrôle des tâches, la substitution de variables, les expressions conditionnelles et des possibilités avancées de scripting. Ces extensions ont rendu Bash non seulement adapté à un usage interactif, mais en ont aussi fait une plateforme puissante pour l'écriture de scripts shell — des programmes d'automatisation qui exécutent des commandes les unes après les autres.

Les scripts shell sont un élément central de l'administration système et de l'automatisation sous Linux et sur d'autres systèmes compatibles POSIX. Les scripts Bash peuvent être utilisés pour automatiser des tâches telles que la gestion de fichiers, la surveillance du système, les sauvegardes et la configuration réseau. De nombreux systèmes utilisent des scripts Bash pendant le processus de démarrage, par exemple pour configurer des interfaces réseau ou lancer des services. Comme Bash est compatible avec le Bourne shell, les scripts sh existants sont en règle générale également exécutables sous Bash, ce qui facilite la transition vers Bash.

Après les premières versions, Chet Ramey a repris la responsabilité de la maintenance de Bash. Brian Fox a cessé d'être le développeur principal, et Ramey est devenu le mainteneur en chef du projet. Les sources divergent sur le moment exact de ce transfert : certaines mentionnent 1992, d'autres 1994. Quel que soit le millésime précis, il est clair que Ramey joue depuis lors un rôle central dans le développement ultérieur et la stabilisation de Bash. Il assure les mises à jour, les correctifs de sécurité et les nouvelles fonctionnalités, et est responsable de la gestion de la base de code et des contributions de la communauté.

Bash est écrit dans le langage de programmation C et fonctionne sur un large éventail de plateformes, pour autant que celles-ci respectent la norme POSIX. Il fait partie de presque tout système Linux et est également utilisé sous macOS, bien qu'Apple soit passé à zsh (Z Shell) comme shell de connexion par défaut depuis 2019. Bash reste toutefois disponible et très utilisé, y compris sous macOS, en raison de sa stabilité, de sa notoriété et de sa documentation étendue.

L'un des aspects les plus puissants de Bash est son intégration avec d'autres outils en ligne de commande. Dans les systèmes de type Unix, le principe veut que chaque programme exécute une tâche spécifique et soit bon dans ce qu'il fait. Bash joue le rôle de coordinateur : il appelle ces programmes, relie leur sortie au moyen de pipes et utilise des scripts pour automatiser des flux de travail complexes. Des exemples de tels outils sont `rsync` pour la synchronisation de fichiers, `screen` pour la gestion de sessions, `sudo` pour la gestion des privilèges et `sg3_utils` pour l'envoi de commandes SCSI aux appareils.

Les scripts Bash peuvent par exemple appeler `sg_readcap` pour déterminer la capacité des disques au moyen de commandes SCSI, ou utiliser `scsi_ready` pour vérifier si un périphérique de stockage est prêt. Ces outils sont souvent eux-mêmes écrits comme des scripts bash qui, à leur tour, appellent d'autres outils système, comme `sg_turs` ou `sg_readcap`. Cela montre comment Bash sert de liant entre différentes couches du logiciel système.

En outre, Bash offre des fonctionnalités avancées telles que des variables, des boucles, des instructions conditionnelles, des fonctions et des signaux. Il prend en charge les modes interactif et non interactif. En mode interactif, l'utilisateur peut saisir directement des commandes, tandis qu'en mode script, une série d'instructions écrite à l'avance est exécutée. Bash se distingue aussi par ses fichiers de configuration, comme `.bashrc`, `.bash_profile` et `/etc/bash.bashrc`, qui permettent aux utilisateurs et aux administrateurs d'adapter l'environnement.

Une grande partie de la puissance de Bash réside dans ses capacités de traitement de texte et de manipulation de données. Avec des outils comme `grep`, `awk`, `sed` et la manipulation de chaînes interne, Bash peut effectuer un traitement de données complexe sans avoir besoin de langages de programmation externes. Cela le rend particulièrement adapté aux administrateurs système, aux développeurs et aux ingénieurs DevOps qui travaillent quotidiennement avec des fichiers journaux, des configurations et de l'automatisation.

Malgré son âge et sa taille, Bash reste activement maintenu. Des problèmes de sécurité, comme la célèbre vulnérabilité Shellshock de 2014, ont conduit à une attention accrue pour la sécurité de la base de code. Depuis lors, des contrôles de sécurité stricts et des mises à jour régulières ont été mis en place pour garantir la fiabilité de Bash.

Bash est plus qu'un simple shell : c'est un fondement de l'infrastructure open source moderne. C'est un pont entre l'humain et le système, entre des commandes simples et des automatisations complexes. C'est un exemple vivant de la façon dont un logiciel libre, développé dans un cadre communautaire, peut rester pertinent pendant des décennies. Des premières lignes de code écrites par Brian Fox en 1988 aux versions de maintenance actuelles de Chet Ramey — Bash est une constante dans un monde technologique en évolution rapide.

Sans Bash, les serveurs Linux, l'infrastructure cloud, les conteneurs et les scripts d'automatisation seraient tout à fait différents. C'est une couche invisible mais essentielle dans presque tout système informatique moderne. Et tandis que de nouveaux shells comme zsh et fish gagnent en popularité, Bash reste la référence à laquelle les autres shells sont comparés.

← Retour à la base de connaissances
← Terug naar kennisbank