Linux : comment changer son shell par défaut avec la commande chsh ?

I. Présentation

Dans ce tutoriel, nous allons apprendre à changer le shell par défaut de notre utilisateur ou d'un autre utilisateur à l'aide de la commande chsh. Ceci peut s'avérer utile si vous souhaitez passer de Bash à Zsh, ou peut-être même de Bash à PowerShell ! 🙂

Enfin, Bash n'est pas forcément le shell par défaut ! Si l'on prend l'exemple de Kali Linux, le shell par défaut est "zsh" depuis la version 2020.4.

D'ailleurs, cette démonstration est réalisée sous Kali Linux, mais vous pouvez utiliser une autre distribution (Debian, Ubuntu, RHEL, etc.). Vous devez disposer des droits "root" (via sudo, par exemple) pour changer le shell d'un autre utilisateur.

Pour rappel, le shell est un interpréteur de commande.

II. Quels sont les shells disponibles sur ma machine Linux ?

Avant de vouloir changer de shell pour remplacer Bash par autre chose, il faudrait déjà savoir quels sont les shells actuellement disponible sur la machine locale !

cat /etc/shells

Voici un exemple :

Linux - Liste des shells disponibles

III. Comment changer mon shell par défaut ?

Maintenant que l'on sait quels sont les shells disponibles, nous allons pouvoir choisir un nouveau shell par défaut. Pour cela, exécutez simplement la commande "chsh" comme ceci :

chsh

Il ne vous reste plus qu'à préciser le nom du nouveau shell via son chemin (référez-vous à la sortie de la commande précédente) puis validez avec Entrée.

Changer le shell par défaut avec chsh

Vous pouvez aussi utiliser directement cette syntaxe :

chsh -s /bin/bash

Dans l'exemple ci-dessus, on définit Bash comme shell par défaut.

Ensuite, vous devez redémarrer la machine ou fermer/rouvrir la session pour appliquer le changement. Vous pouvez obtenir le nom de votre shell actuel via cette commande :

ps -p $$

Mais, finalement, cette information est visible dans le fichier suivant :

/etc/passwd

Ainsi, vous avez l'information pour chaque utilisateur :

Voir le shell par défaut d'un utilisateur Linux

IV. Modifier le shell par défaut d'un autre utilisateur

Nous avons vu comment changer le shell par défaut de l'utilisateur actif avec lequel nous sommes connectés. Mais, comment effectuer cette modification sur un autre utilisateur ? Pour cette partie, vous avez besoin des droits d'administration sur le serveur : les commandes seront à préfixer avec sudo.

Voici la syntaxe à respecter :

sudo chsh -s <chemin vers le shell> <identifiant utilisateur>

Par exemple, pour définir "PowerShell" comme shell par défaut pour "florian", on exécutera cette commande :

sudo chsh -s /bin/pwsh florian

Libre à vous d'adapter cet exemple en fonction de vos besoins ! Vous pouvez revenir en arrière à tout moment en indiquant la valeur correspondant à votre précédent shell par défaut.

V. Conclusion

Simple et efficace, la commande chsh permet de changer le shell par défaut sur une machine Linux ! Elle permet d'effectuer la modification proprement dans la configuration du système.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5580.Voir tous les posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.