Le shell est un élément clé des systèmes d’exploitation basés sur Unix, permettant aux utilisateurs d’interagir avec le système via des commandes textuelles. Il constitue une interface utilisateur essentielle pour la gestion des processus et l’exécution des fichiers.
Quel shell est le shell par défaut utilisé sur les systèmes Linux ?
Le shell par défaut qui se retrouve installé sur la majorité des distributions Linux est le Bash, ce qui signifie « Bourne Again Shell ». Ce shell, successeur du Bourne Shell (sh), a été conçu pour intégrer des fonctionnalités modernes tout en préservant la compatibilité avec son prédécesseur. À l’heure actuelle, Bash est le choix prédominant en raison de sa puissance, de sa flexibilité et de sa large adoption au sein de la communauté Linux.
Comment identifier le shell par défaut sur votre système Linux ?
Pour vérifier quel shell est configuré par défaut sur votre système, plusieurs commandes utiles peuvent être utilisées :
- Exécutez
cat /etc/passwd
et cherchez votre nom d’utilisateur. La dernière colonne des résultats affichera le chemin du shell par défaut. - Utilisez
echo $SHELL
dans votre terminal pour afficher le shell actuellement actif. - La commande
cat /etc/shells
listera tous les shells valides installés sur votre système.
Les différents types de shells disponibles sous Linux
Linux prend en charge divers types de shells, chacun ayant ses propres caractéristiques. Les plus populaires incluent :
- Bourne Shell (sh) – L’un des premiers shells, qui reste utilisé pour de nombreux scripts.
- Bash (Bourne Again Shell) – L’option par défaut pour la plupart des distributions, connu pour sa compatibilité et sa facilité d’utilisation.
- C Shell (csh) – Introduit des fonctionnalités comme la gestion des jobs et une syntaxe légèrement différente.
- Korn Shell (ksh) – Combine les fonctionnalités de sh et csh, offrant des options avancées.
- Z Shell (zsh) – Connu pour ses capacités de personnalisation et ses options interactives, de plus en plus populaire parmi les développeurs.
Différence entre un shell et un terminal
Il est essentiel de ne pas confondre le shell et le terminal. Le shell est l’environnement dans lequel les commandes sont interprétées et exécutées, tandis que le terminal est l’interface utilisateur graphique ou en ligne de commande dans laquelle vous interagissez avec le shell. Autrement dit, le terminal permet d’afficher le shell et d’afficher les résultats des commandes que vous exécutez.
Comment changer le shell par défaut
Modifier le shell par défaut dans votre système Linux est une tâche simple :
- Pour commencer, consultez les shells disponibles en exécutant
cat /etc/shells
. - Pour changer votre shell, tapez
chsh
et appuyez sur Entrée. - Quand vous y êtes invité, saisissez le chemin complet du nouveau shell souhaité. Par exemple,
/bin/zsh
. - Déconnectez-vous puis reconnectez-vous pour appliquer le changement.
Comment obtenir le nom du shell actuel ?
Pour connaître le shell que vous utilisez actuellement, vous pouvez exécuter les commandes suivantes :
echo $0
pour afficher le nom du programme de shell.- Utilisez
ps -p $$
pour obtenir des informations sur le processus du shell courant. - La commande
readlink /proc/$$/exe
affichera le chemin complet du shell en cours d’exécution.
FAQ
1. Pourquoi utiliser Bash plutôt qu’un autre shell ?
Bash est largement utilisé car il combine la compatibilité avec de nombreux scripts existants, une riche fonctionnalité de scripting, et une vaste documentation ainsi qu’une communauté active, ce qui le rend idéal pour les utilisateurs de tous niveaux.
2. Quelles sont les principales fonctionnalités de Bash ?
Bash offre une série de fonctionnalités, y compris l’édition de commandes, les alias, les historiques de commandes, la complétion automatique, et le support pour le contrôle de processus, rendant l’interaction avec le système plus efficace.
3. Est-il possible d’avoir plusieurs shells installés sur Linux ?
Oui, il est tout à fait possible d’installer plusieurs shells sur un système Linux. Les utilisateurs peuvent choisir d’utiliser différents shells en fonction de leurs besoins ou préférences, chacun pouvant être sélectionné comme shell par défaut ou exécuté dans des terminaux séparés.