Introduction
Le shell est simplement un pseudo langage qui interprète vos commandes.
Il va également déterminer les fichiers responsables de la mise en place de
votre environnement. Il se nomme ainsi (coquille) car il enveloppe le noyau Unix,
toutes les commandes sont passées au noyau à travers votre shell).
Un shell peut être définir comme étant:
- une interface utilisateur : dès que l'on se connecte au système, on est sous le contrôle d'un processus shell.
- un interpréteur de commandes : permet d'utiliser de façon interactive les ressources de la machine.
- un éventail de commandes extensible : on peut créer des fichiers de commandes (scripts), pour personnaliser et adapter un environnement, fabriquer des commandes personnelles, etc.
- un langage de programmation de haut niveau, possédant des variables de types chaîne de caractères et des structures de contrôle de type for, while, if, etc.
Le shell exécute plusieurs catégories de commandes:
- les commandes externes au shell qui sont des programmes exécutables enregistrés dans des fichiers sous les répertoires /bin et /usr/bin (ls, date, cat, cp, mv, rm, etc.). Ces commandes sont indépendantes des shells, elles engendrent la création d'un processus.
- Les fonctions internes du shell (ou built-in) sont interprétées par le shell comme des commandes (dites commandes internes), il n'y a pas création de processus pour les exécuter (cd, exec, exit, for, if, until, etc.) . Infos: man shell_builtins.
- Des commandes définies par chaque utilisateurs, soit sous la forme de fonctions, soit sous la forme d'alias, lorsque le shell le permet.