Le tout premier shell Unix fut le shell Thompson, sobrement appelé sh. Il fut écrit par Ken Thompson, l'un des pères fondateurs d'Unix chez Bell Labs. Le shell Thompson était utilisé comme shell par défaut pour Unix, jusqu'à la version 6. En 1979, avec la version 7, il fut remplacé par le shell Bourne. Écrit par Stephen Bourne, le shell Bourne était une version améliorée du shell Thompson. Afin de maintenir la rétrocompatibilité avec les scripts existants, Bourne commençait même en utilisant la même commande. Toutefois, les nouvelles fonctionnalités étaient nombreuses. Le shell Bourne était à la fois un shell interactif et un langage de scripting. Il prenait en charge l'exécution des tâches au premier plan et en arrière-plan. Les tuyaux et les redirections furent ajoutés, au même titre que des améliorations de la prise en charge des boucles. Des commandes natives étaient incluses, afin d'éviter l'usage d'outils externes pour une efficacité accrue. En 1984, le projet GNU annonça son intention de créer un clone d'Unix gratuit, basé sur une nouvelle licence plus permissive. Il leur fallait toutefois un shell pour mener le projet à bien. C'est la raison pour laquelle Brian Fox se vit confier la mission d'écrire un clone du shell Bourne. Ce clone fut dénommé Bourne Again Shell, ou Bash, en hommage à Stephen Bourne. Après le lancement en 1989, Chet Ramey contribua à corriger des bugs et devint l'un des principaux responsables de Bash. Encore aujourd'hui, il exerce ce rôle. En tant que shell standard du GNU, Bash est devenu le shell standard de toutes les distributions Linux/GNU. Ainsi, Bash a fortement profité du succès mondial de Linux. Ce shell reprend et améliore les fonctionnalités du shell Bourne, mais s'inspire aussi d'autres shells comme le C shell et le KornShell. Ses capacités d'édition de lignes de commandes surpassent de loin celles des précédents shells, avec notamment la possibilité de manipuler des commandes précédemment exécutées via l'historique. Après plus de 30 ans d'existence, Bash reste le shell Linux par défaut. Il s'agit d'un outil mature et stable, notamment grâce à une large base d'utilisateurs. Il existe de nombreuses alternatives, qu'il s'agisse de vétérans comme C Shell et KornShell que de petits nouveaux comme le shell Z ou le Friendly Interactive Shell, mais Bash reste indétrônable en termes de popularité.