Comment changer le shell par défaut dans Linux

Un shell est l’interface par laquelle vous pouvez communiquer avec votre système Linux. Il vous permet de taper des commandes et de contrôler votre ordinateur. Chaque utilisateur de Linux a un shell par défaut, qui est bash dans la plupart des cas. Il existe également de nombreuses autres options disponibles, y compris Zsh, ksh, rc et fish. Ici, nous vous montrons les différentes méthodes pour changer votre shell par défaut dans Linux.
Table des matières
- Comment trouver le nom de votre shell actuel
- Lister tous les shells installés
- Changer le shell par défaut dans Linux en utilisant Chsh
- Changer le shell d’un autre utilisateur
- Changer le shell par défaut dans Linux en utilisant Usermod
- Changer manuellement le shell par défaut dans Linux
- Alternatives à votre shell par défaut
Comment trouver le nom de votre shell actuel
Avant de plonger dans le changement du shell par défaut, il est bon de savoir quel shell vous utilisez actuellement. Vous pouvez le découvrir en vérifiant la variable d’environnement système en utilisant la commande echo suivante :
echo $SHELL
Cette commande affichera le chemin de votre shell actuel, tel que /bin/bash ou /bin/zsh.
Le fichier /etc/passwd contient des informations importantes sur les comptes utilisateurs. Vous pouvez également utiliser ce fichier pour trouver votre shell actuel :
grep "^${USER}" /etc/passwd
Vous pouvez également trouver plus d’informations sur le shell actuel en vérifiant l’identifiant de processus (PID), en utilisant la commande ps :
ps -p $$
Cette sortie confirme que le shell actuel est bash.
Lister tous les shells installés
Maintenant que vous connaissez votre shell actuel, vous voudrez peut-être voir quelles autres options sont disponibles sur votre système. Pour localiser tous les shells installés sur votre système, vous devez jeter un œil au fichier /etc/shells.
Utilisons la commande cat pour afficher une liste de tous les shells disponibles sur votre système :
cat /etc/shells

Cela vous donnera une idée des shells vers lesquels vous pouvez basculer. Vous pouvez également installer tout nouveau shell en utilisant votre gestionnaire de paquets et l’utiliser comme votre shell par défaut.
De plus, vous pouvez essayer ces shells répertoriés temporairement sans changer votre shell par défaut. Pour démarrer une nouvelle session de shell, tapez simplement le nom du shell dans le terminal.
Par exemple, pour essayer le shell Zsh, tapez :
zsh
Cela vous permet d’expérimenter avec différents shells avant de décider de faire un changement permanent.
Changer le shell par défaut dans Linux en utilisant Chsh
La manière la plus simple de changer le shell par défaut dans Linux est d’utiliser la commande chsh. La commande chsh signifie “changer de shell”, et elle est utilisée avec l’option -s suivie du chemin de votre shell.
Si vous ne connaissez pas le chemin de votre shell, exécutez type zsh dans le terminal pour obtenir le chemin souhaité. Après avoir obtenu le chemin de votre shell, vous pouvez changer votre shell par défaut pour votre shell spécifique.
Par exemple, si vous souhaitez passer à Zsh, vous devez utiliser chsh -s avec le chemin du shell Zsh :
chsh -s /bin/zsh
Vous serez invité à entrer votre mot de passe. Une fois que vous l’avez fait, vous devez vous déconnecter et vous reconnecter pour confirmer les changements.
La commande chsh changera le shell de connexion par défaut de manière permanente. Vous pouvez vérifier les changements en exécutant cette commande :
grep "^${USER}" /etc/passwd
Changer le shell d’un autre utilisateur
Si vous avez des privilèges root et la capacité d’utiliser la commande sudo, vous pouvez changer le shell par défaut pour d’autres comptes utilisateurs. Cela peut être utile si vous souhaitez fournir un environnement shell différent, tel que fish, pour un autre utilisateur.
Vous pouvez utiliser la même syntaxe de commande chsh avec un paramètre supplémentaire spécifiant le nom d’utilisateur du compte que vous souhaitez modifier.
Par exemple, pour changer le shell d’un autre utilisateur en Zsh, exécutez cette commande dans le terminal :
sudo chsh -s /bin/zsh user
Cette commande indique au système de changer le shell par défaut pour l’utilisateur spécifique en shell Zsh, qui se trouve à /bin/zsh.
Changer le shell par défaut dans Linux en utilisant Usermod
Une autre méthode pour changer de shell est d’utiliser la commande usermod. Cette commande est utilisée pour modifier les comptes utilisateurs, et elle peut également être utilisée pour changer le shell par défaut.
Pour changer votre shell par défaut en utilisant usermod, ouvrez un terminal avec des privilèges root et tapez cette commande :
sudo usermod -s /path/to/new/shell your_username
Ici, vous devez remplacer /path/to/new/shell par le chemin du shell souhaité et your_username par votre nom d’utilisateur réel.
Par exemple, changeons le shell bash par défaut en zsh :
sudo usermod -s /bin/zsh user
Tout comme auparavant, déconnectez-vous et reconnectez-vous à votre système Linux pour que ces changements prennent effet.
Vous pouvez vérifier le passage au nouveau shell en consultant les détails du compte utilisateur avec la commande suivante :
getent passwd user
Changer manuellement le shell par défaut dans Linux
Vous pouvez également changer le shell par défaut manuellement en éditant le fichier /etc/passwd. Vous pouvez le faire en remplaçant le chemin du shell par défaut par le nouveau shell. Cependant, soyez prudent avec cette technique, car elle peut entraîner des problèmes si elle n’est pas effectuée correctement.
Pour changer manuellement votre shell, ouvrez le fichier /etc/passwd en utilisant votre éditeur de texte préféré (comme nano ou vim) avec des privilèges root :
sudo nano /etc/passwd
Recherchez votre nom d’utilisateur dans le fichier. Le dernier champ de l’entrée de votre utilisateur affichera votre shell actuel. Changez-le pour le chemin de votre shell souhaité.
Par exemple, changeons notre chemin de shell par défaut /bin/bash en /bin/zsh :

Enfin, enregistrez le fichier en appuyant sur Ctrl + S et quittez l’éditeur avec Ctrl + X. Encore une fois, déconnectez-vous et reconnectez-vous pour appliquer les changements.
Alternatives à votre shell par défaut
Bien que Bash soit un outil de script formidable et puissant, il existe plusieurs autres shells qui peuvent améliorer votre expérience en ligne de commande et offrir de meilleures options de personnalisation :
Fish
fish fait référence à Friendly Interactive Shell. Ce shell a une interface de ligne de commande intuitive, avec coloration syntaxique, suggestions automatiques et complétions par onglets qui rendent la saisie des commandes très facile.
fish comprend également un outil de configuration basé sur le web. Cela signifie que vous pouvez ajuster les paramètres et créer des fonctions sans fouiller dans les fichiers de configuration.
Zsh
Zsh, ou Z shell, est hautement personnalisable et possède de nombreuses fonctionnalités utiles. Certaines de ses meilleures caractéristiques incluent le globbing, la correction automatique, des configurations personnalisées et une complétion par onglets avancée.
Zsh prend également en charge les plugins et les thèmes, ce qui facilite l’adaptation de votre expérience shell à vos goûts. Avec Zsh, vous pouvez également afficher votre branche Git et effectuer des manipulations de fichiers complexes avec des motifs simples.
Ksh
ksh, ou KornShell, prend les meilleures fonctionnalités du C shell et du Bourne shell, en faisant un shell puissant et facile à utiliser avec des capacités de script avancées. Certaines fonctionnalités de ksh incluent des fonctions mathématiques intégrées, l’édition de ligne de commande, le scripting shell et l’extensibilité.
Conclusion
Changer votre shell par défaut dans Linux est un processus simple qui peut améliorer votre expérience en ligne de commande. Si vous êtes un utilisateur avancé, vous devriez certainement essayer d’autres shells Linux alternatifs.
Crédit image : Lukas via Unsplash. Tous les captures d’écran par Haroon Javed.