Qu'est-ce qu'un shell ?
Un shell est un programme qui fournit une interface entre un utilisateur et un noyau de système d'exploitation (OS). Un système d'exploitation démarre un shell pour chaque utilisateur lorsque l'utilisateur se connecte ou ouvre une fenêtre de terminal ou de console.
Un noyau est un programme qui :
- Contrôle toutes les opérations informatiques.
- Coordonne tous les utilitaires en cours d'exécution
- Garantit que l'exécution des utilitaires n'interfère pas les uns avec les autres et ne consomme pas toutes les ressources système.
- Planifie et gère tous les processus système.
En s'interfaçant avec un noyau, un shell permet à un utilisateur d'exécuter des utilitaires et des programmes.
Environnement utilisateur
Le shell fournit également un environnement utilisateur que vous pouvez personnaliser à l'aide de fichiers d'initialisation. Ces fichiers contiennent des paramètres pour les caractéristiques de l'environnement utilisateur, tels que :
- Rechercher des chemins pour trouver des commandes.
- Autorisations par défaut sur les nouveaux fichiers.
- Valeurs des variables utilisées par d'autres programmes.
- Valeurs que vous pouvez personnaliser.
Quelles sont les différentes coquilles ?
Les sections suivantes décrivent les shells du système d'exploitation principalement disponibles sur le système d'exploitation UNIX/Linux. Les fonctionnalités du shell et leurs invites par défaut sont également décrites.
1. Le Bourne Shell
Le shell Bourne (sh), écrit par Steve Bourne chez AT&T Bell Labs, est le shell UNIX original. C'est le shell préféré pour la programmation shell en raison de sa compacité et de sa rapidité. Un inconvénient du shell Bourne est qu'il manque de fonctionnalités pour une utilisation interactive, telles que la possibilité de rappeler les commandes précédentes (historique). Le shell Bourne manque également de gestion intégrée des expressions arithmétiques et logiques.
Le shell Bourne est le shell par défaut du SE Solaris. Il s'agit du shell standard pour les scripts d'administration du système Solaris. Pour le Bourne shell :
- Le nom du chemin complet de la commande est /bin/sh et /sbin/sh .
- L'invite par défaut de l'utilisateur non root est $ .
- L'invite par défaut de l'utilisateur racine est # .
2. Le shell C
Le shell C (csh) :
- Est une amélioration UNIX écrite par Bill Joy à l'Université de Californie à Berkeley.
- Fonctionnalités intégrées pour une utilisation interactive, telles que les alias et l'historique des commandes .
- Comprend des fonctionnalités de programmation pratiques, telles que l'arithmétique intégrée et une syntaxe d'expression de type C .
Pour le shell C :
- Le nom du chemin complet de la commande est /bin/csh .
- L'invite par défaut de l'utilisateur non root est le nom d'hôte % .
- L'invite par défaut de l'utilisateur racine est le nom d'hôte # .
3. Le coquillage Korn
Le coquillage Korn (ksh) :
- Écrit par David Korn chez AT&T Bell Labs
- Est un sur-ensemble du shell Bourne.
- Prend en charge tout ce qui se trouve dans le shell Bourne.
- Dispose de fonctionnalités interactives comparables à celles du shell C.
- Comprend des fonctionnalités de programmation pratiques telles que l'arithmétique intégrée et tableaux de type C , fonctions , et installations de manipulation de chaînes .
- Est plus rapide que le shell C.
- Exécute des scripts écrits pour le shell Bourne.
Pour le shell Korn, le :
- Le nom du chemin complet de la commande est /bin/ksh .
- L'invite par défaut de l'utilisateur non root est $ .
- L'invite par défaut de l'utilisateur racine est # .
4. Le shell GNU Bourne-Again
Le shell GNU Bourne-Again (bash) :
- Est compatible avec le shell Bourne.
- Incorpore des fonctionnalités utiles des shells Korn et C.
- A des touches fléchées qui sont automatiquement mappées pour le rappel et l'édition de commandes.
Pour le shell GNU Bourne-Again, le :
- Le nom du chemin complet de la commande est /bin/bash .
- L'invite par défaut pour un utilisateur non root est bash-x.xx$ . (Où x.xx indique le numéro de version du shell. Par exemple, bash-3.50$)
- L'invite par défaut de l'utilisateur racine est bash-x.xx# . (Où x.xx indique le numéro de version du shell. Par exemple, bash-3.50$#)
Voici une courte comparaison des 4 coques et de leurs propriétés.
Shell | Chemin | Invite par défaut (utilisateur non root) | Invite par défaut (utilisateur racine) |
---|---|---|---|
Le Bourne Shell (sh) | /bin/sh et /sbin/sh | $ | # |
Le shell C (csh) | /bin/csh | % | # |
Le coquillage Korn (ksh) | /bin/ksh | $ | # |
Le shell GNU Bourne-Again (Bash) | /bin/bash | bash-x.xx$ | bash-x.xx# |