Différents types de shell
Le shell est avant tout un programme, un composant de votre système. Chaque utilisateur possède d'ailleurs un shell par défaut. Plusieurs shells sont disponibles sur les systèmes Unix. Chacun met à disposition de l'utilisateur un jeu de caractères spéciaux, des commandes internes et des fichiers d'initialisation de paramétrer son environnement de travail. Heureusement, les shells les plus utilisés aujourd'hui ont un ancêtre commun, le shell Bourne, et de ce fait, présentent des fonctionnalités communes.
Le Bourne Shell(sh) a été conçu dans les années 70, par Steve Bourne. Il permet à l'époque de lancer des commandes mais offre aussi des fonctionnalités de programmation. Parallèlement, Bill Joy crée le C-Shell (csh}, peu utilisé aujourd'hui dans le
monde Unix. Celui-ci est incompatible avec le shell Bourne, il inclut toutefois des fonctionnalités supplémentaires particulièrement intéressantes : un historique des commandes, la création d'alias ou encore le contrôle des tâches. Ces fonctionnalités seront plus tard reprises par David Korn, qui crée ainsi un nouvel interpréteur, un Bourne Shell amélioré baptisé Korn Shell (ksh). Nous sommes alors en 1983.
Le Korn Shell est aujourd'hui le plus utilisé (du moins sa version ksh 88 créée en 1988) et a d'ailleurs servi de base à la normalisation du shell.
Toutefois, l'interpréteur que l'on rencontre le plus souvent sur les systèmes GNU/Linux est le Shell Bash (Bourne-Again Shell), créé par la free Software Foundation. C'est la raison pour laquelle nous nous concentrerons exclusivement sur le shell Bash dans les pages de ce numéro (à l'exception de notre rubrique bonus, dans laquelle vous trouverez une présentation de quelques autres shells).
L'environnement du shell
Le shell intervient dès le démarrage de votre système. En effet, c'est grâce à un script de shell que votre gestionnaire de connexion vous demande de saisir votre login et votre mot de passe pour ouvrir votre session.