Vous avez peut-être entendu parler de Bash, le shell par défaut sur la plupart des distributions Linux. Il existe un autre shell préinstallé sur Linux: le shell Bourne.
Le shell Bourne est l'un des plus anciens shells encore utilisés sur les systèmes Linux modernes, même s'il n'est pas aussi largement utilisé que Bash. Voici ce que vous devez savoir sur le shell Bourne sous Linux.
Qu'est-ce que le Bourne Shell?
Le shell Bourne, souvent abrégé en "sh", porte le nom de l'informaticien britannique Stephen R. Bourne, qui l'a développé alors qu'il travaillait aux Bell Labs en 1978. Le shell a remplacé l'ancien Thompson Shell, écrit par l'un des créateurs originaux d'Unix, Ken Thompson.
Le shell Bourne a fait ses débuts avec la version 7 d'Unix en 1979. Il avait des fonctionnalités telles que le contrôle de flux, les variables et une meilleure gestion des chaînes. Ces fonctionnalités ont facilité l'utilisation du shell comme langage de programmation plutôt que comme simple moyen d'appeler d'autres programmes.
Bien que le shell Bourne soit resté populaire pour écrire des scripts portables sur les systèmes Unix, il était remplacé pour une utilisation interactive par le shell C, KornShell, le shell Bourne Again, également connu sous le nom de Bash, et Z coquille. Ces coques offraient des fonctionnalités telles que historique des commandes et édition de la ligne de commande qui simplifiait la vie des utilisateurs et des administrateurs.
KornShell, Bash et Z shell (traités plus tard) ont des syntaxes influencées par le Bourne shell.
Des langages de script multiplateformes plus puissants avec des fonctionnalités encore plus avancées comme Perl et Python ont également largement remplacé les scripts shell.
Pourtant, le shell Bourne est largement compris et de nombreux scripts fournis avec les programmes Linux utilisent sa syntaxe pour diverses tâches.
Le comportement de l'obus Bourne a été codifié en la norme POSIX, de nombreux systèmes modernes de type Unix l'implémentent d'une manière ou d'une autre en utilisant un shell compatible.
Alternatives modernes à Bourne Shell
Il existe plusieurs alternatives modernes open source au shell Bourne d'origine sur les systèmes Linux. Voici quelques-uns des plus connus :
1. Bourne Again Shell (Bash)
Le nom Coque Bourne Again (Bash) est une pièce de théâtre sur le Bourne shell. Ce shell a été développé à l'origine en tant que composant du système GNU, précédant Linux de plusieurs années.
Il est largement compatible avec les scripts écrits à l'origine pour le shell Bourne. Il a également incorporé des fonctionnalités telles que l'édition de ligne de commande lancée par KornShell.
Bash est le shell par défaut sur de nombreuses distributions Linux et est donc devenu un standard de facto à part entière.
2. KornShellComment
KornShellComment, également connu sous le nom de ksh, a été initialement développé par David Korn, également chez Bell Labs, dans les années 1980. Construit sur le shell Bourne, KornShell a introduit des fonctionnalités supplémentaires telles que le contrôle des tâches, les tableaux et l'édition de la ligne de commande. Cette dernière était une fonctionnalité révolutionnaire lorsqu'elle est apparue pour la première fois car elle était beaucoup plus simple que d'utiliser le mécanisme d'historique du shell C.
Si vous deviez rééditer une commande émise précédemment, vous pouvez utiliser des commandes similaires à Vi ou Emacs pour le faire.
KornShell était une valeur par défaut sur certains systèmes Linux commerciaux comme Oracle Solaris. Comme le KornShell original a été initialement publié par AT&T sous une licence propriétaire, une version open source nommée pdksh a finalement été publiée.
3. Shell Almquist/Debian Almquist
Le shell Almquist a été écrit à l'origine par Kenneth Almquist et était destiné à remplacer légèrement le shell Bourne. De nombreux systèmes BSD l'incluent comme implémentation de sh.
Une version a été portée sur Debian dans les années 1990 et est connue sous le nom de shell Debian Almquist. Comme son nom l'indique, il s'agit de l'implémentation de sh sur les systèmes Debian et Ubuntu.
4. Coque Z
Coque Z, ou zsh, est l'un des shells les plus récents, développé à l'origine en 1990 par Paul Falsted. Z shell est devenu célèbre pour ses fonctionnalités avancées. Un bon exemple est le globbing récursif, ou la possibilité de faire correspondre les caractères génériques dans les sous-répertoires.
Le shell Z est le shell de connexion par défaut pour macOS et Kali Linux.
Compatibilité Bourne Shell
Bien que ces shells soient largement compatibles avec les scripts écrits à l'origine pour le shell Bourne, il existe des moyens de modifier leur comportement pour qu'ils ressemblent davantage au shell d'origine.
Le principal moyen d'y parvenir est de un lien symbolique. La plupart des systèmes créeront des liens symboliques /bin/sh à Bash ou à un autre shell. Lorsqu'il est invoqué de cette manière, le shell entrera dans un mode de compatibilité avec le shell Bourne.
Vous pouvez voir quelle coque /bin/sh est lié à avec la commande ls:
ls -l /bin/sh
Maintenant, vous connaissez le Bourne Shell
Le shell Bourne est l'un des plus anciens standards de script sur les systèmes de type Unix. Même s'il a été remplacé par d'autres shells, il reste vital pour exécuter des scripts écrits par d'autres.
Bash est l'un des meilleurs dérivés de Bourne pour le codage, en particulier pour son approche des variables. Il a des variables uniques qui peuvent vous donner envie de le considérer pour votre prochain projet.