Le principe général du shell est relativement simple. C’est une boucle infinie. On en sort soit par l’exécution de la commande exit, soit par la frappe des touches CTRL-D. Dans le cas d’une fenêtre de terminal, la fin du shell de connexion ferme la fenêtre. Pour analyser les commandes lues au clavier, le shell découpe la ligne lue en mots, dont le premier est toujours considéré comme la commande à exécuter: cette opération est l’analyse syntaxique. Pour effectuer ce découpage en mots, le shell prend en compte les caractères définis comme séparateurs (par défaut espace, tabulation et NEWLINE) mais aussi certains caractères spéciaux, appelés méta-caractères qui sont alors interprétés pour remplir un rôle défini. Par exemple:
Les caractères spéciaux sont des caractères qui permettent de paramétrer l’interprétation des lignes de
commandes. Ils sont étudiés tout au long de cette section ; voici la liste de ceux que nous étudions dans la
suite: « > », « >> », « 2 > », « < », « | », « ’ », « \ », « $( » avec « ) », « ‘ », « " », « * »,
« ? », « [ » avec « ] », « ! », « − », « ~ », « ; », « ( » avec « ) », « # » et « = ». C’est cette
liste de méta-caractères qui fait peur aux novices. Nous allons donc les étudier en détails et
progressivement.
En plus du rôle d’interpréteur de commandes, le shell joue le rôle de langage de programmation, et à
ce titre, il gère des variables et des fonctions, et dispose de structures de contrôle (boucles,
conditionnelles...). Ces fonctionnalités servent essentiellement pour l’écriture de programmes (appelés
shell-script) qui permettent à chacun de paramétrer une session et de développer ses propres outils. Dans
ce module d’introduction, le shell est principalement étudié dans son premier rôle d’interpréteur
de commandes. En ce qui concerne le langage de programmation, nous nous contentons de
présenter les principales variables et shell-scripts de configuration du shell utilisé par l’utilisateur.
Retour à la page de cours