Qu'est-ce que le Bourne Shell?

Le shell Bourne est un petit programme qui fonctionne sur les systèmes d'exploitation UNIX® et Linux® et fournit une interface pour exécuter des programmes sur le système. Il est souvent appelé interface de ligne de commande ou interprète de commande, car il ne fournit pas d'interface utilisateur graphique (GUI) à l'utilisateur. Les commandes, et tous les paramètres nécessaires, à exécuter sont tapés dans le shell. Le shell Bourne est également un langage de script, permettant aux utilisateurs de créer et d'exécuter des fichiers de script qui peuvent traiter les données via plusieurs programmes via une seule commande. Sur les systèmes de type UNIX®, le programme est simplement connu sous le nom de "sh".

Les premiers coquilles de ce type pour les systèmes Unix® étaient connues sous le nom de Shell Thompson, créé par Ken Thompson, l'un des créateurs originaux du système d'exploitation Unix®. Le shell Thompson était limité à l'interprétation des commandes, et un certain nombre de fonctions supplémentaires devaient être exécutées en tant qu'opérations externes. Plus tard, Stephen Bourne a créé le Bourne Shell pour remplacer le ThompsonShell, ajoutant un certain nombre de nouvelles fonctionnalités dans le shell lui-même, ainsi que le langage de script du shell.

En réalité, le Bourne Shell était prévu comme un langage de script dès le départ. Bien qu'il s'agisse toujours de l'interface de ligne de commande pour UNIX® Version Sept, il a également ouvert la possibilité pour les utilisateurs de développer des scripts shell qui relieraient les commandes ensemble afin de traiter les données. Grâce à l'utilisation de cette programmation, l'utilisateur pourrait établir des variables pour capturer des données connues ou inconnues de l'entrée ou de la sortie et manipuler le traitement de ces données grâce à l'utilisation d'instructions conditionnelles dans le script via une technique appelée flux de contrôle.

Ce fut également le premier shell à implémenter une fonctionnalité connue sous le nom de manipulation du signal. Grâce au shell Bourne, un utilisateur peut envoyer un type de signal spécifique à un processus déjà en cours d'exécution sur l'ordinateur, demandant à ce processus de faire SOMething d'autre. Beaucoup d'entre eux sont des moyens d'arrêter un processus qui s'exécute et de produire une sorte de sortie qui peut être utilisée pour le débogage, bien que d'autres existent pour arrêter temporairement un processus, un curriculum vitae, etc.

La possibilité de contrôler directement les descripteurs de fichiers a été une autre première pour le shell Bourne. Sur un système de type Unix®, chaque programme en cours d'exécution a une table qui répertorie les descripteurs de fichiers pour tous les fichiers ouverts. Cela peut inclure n'importe quoi, d'un simple fichier texte à un répertoire ou même aux prises de communication que les processus utilisent pour partager les données les uns avec les autres. Pour qu'un utilisateur ait un contrôle sur les descripteurs de fichiers sur un système autorisé un contrôle sans précédent sur l'entrée et la sortie pour pratiquement tout sur l'ordinateur.

Bien sûr, même si le shell Bourne a offert de telles fonctionnalités supplémentaires aux utilisateurs, il manquait de fonctionnalités telles que la capacité de contrôler les processus de manière interactive, d'établir des alias de commande et de conserver un historique. Plus tard, cependant, un certain nombre de descentesLes fourmis ont commencé à émerger qui ont pris les fonctionnalités de coquille les plus utiles qui avaient été conçues au fil des ans et les ont roulées dans de nouveaux coquilles. Un exemple courant est la coque Bourne-Again, ou bash, qui est courante sur de nombreux systèmes Linux®. En conséquence, bon nombre de ces descendants sont pleinement capables d'exécuter des scripts Bourne Shell ordinaires, donnant à chaque système de type Unix® une certaine implémentation du Shell Bourne d'origine d'une manière ou d'une autre. Sur de nombreux systèmes Linux®, il s'agit simplement d'un lien de "sh" à "bash" ou à un autre descendant capable.

DANS D'AUTRES LANGUES