Présentation générale
Sous les systèmes GNU/Linux, l’interpréteur de commandes attribué à un compte utilisateur conditionne l’ensemble de ses sessions de travail interactives. Ce tutoriel décortique le fonctionnement interne de la commande chsh (change shell), son interaction étroite avec /etc/shells et /etc/passwd, tout en illustrant pas à pas le passage vers un environnement moderne comme Zsh à l’aide de captures de terminal dédiées.
Identification de l’interpréteur actif et consultation des shells autorisés
L’évaluation de la variable d’environnement SHELL permet de déterminer immédiatement l’interpréteur assigné à la session en cours :
echo $SHELL
L’affichage en console confirme que le compte connecté exploite actuellement /bin/bash comme invite de commande par défaut.

Afin de préserver la sécurité de la machine, le système interdit l’affectation arbitraire de binaires non contrôlés. La liste blanche des shells de connexion officiellement approuvés se consulte via le fichier /etc/shells :
cat /etc/shells
Ce fichier recense l’ensemble des chemins absolus valides, notamment /bin/sh et /bin/bash, utilisables sans restriction par les utilisateurs.

Déploiement de Zsh et validation de son éligibilité système
Pour notre mise en pratique, nous allons installer un interpréteur alternatif très populaire, zsh, via le gestionnaire de paquets APT :
sudo apt-get update -qq && sudo apt-get install -y zsh

Une fois les paquets déployés, vérifions l’emplacement exact où réside l’exécutable grâce à l’utilitaire which :
which zsh
Le système indique le chemin /usr/bin/zsh, confirmant la présence opérationnelle du binaire.

Avant de procéder à la bascule, assurons-nous que cette nouvelle option figure bien parmi les choix reconnus dans /etc/shells :
grep -E 'bash|zsh' /etc/shells
La présence conjointe de /bin/zsh et /usr/bin/zsh dans ce listing garantit que l’utilitaire chsh acceptera ce shell sans lever de refus d’authentification ou de conformité.

Configuration du nouveau shell par défaut à l’aide de chsh
Identifions tout d’abord le nom du compte utilisateur exécutant ces manipulations à l’aide de id -un :
id -un
La commande renvoie l’identifiant root, confirmant le privilège de la session en cours.

Nous pouvons désormais réassigner le shell par défaut du compte vers zsh au moyen du commutateur -s, dynamiquement combiné au résultat de which :
chsh -s $(which zsh)
L’exécution s’achève silencieusement, signalant que le point d’entrée vers /usr/bin/zsh a été enregistré avec succès.

Pour vérifier la prise en compte au niveau du système, consultons la ligne relative à notre profil dans la base des utilisateurs /etc/passwd :
grep "^$(whoami):" /etc/passwd
Le septième et dernier champ de l’enregistrement affiche désormais /usr/bin/zsh, certifiant que les prochaines ouvertures de session basculeront automatiquement sur Zsh.

Mécanisme sous-jacent et procédure de réinitialisation vers Bash
Comprendre chsh, c’est réaliser qu’il agit comme une interface sécurisée modifiant le champ terminal du fichier /etc/passwd tout en validant les droits via /etc/shells. Une fois l’expérimentation terminée, la restauration vers bash s’effectue en fournissant simplement la cible d’origine :
chsh -s /bin/bash
L’opération se conclut sans incident, réinstaurant le shell traditionnel.

Une dernière lecture de /etc/passwd permet de valider le retour à la normale :
grep "^$(whoami):" /etc/passwd
La référence /bin/bash réapparaît en fin de ligne, attestant que l’environnement utilisateur d’origine a été rétabli de façon propre et sécurisée.

Vous disposez à présent d’une maîtrise complète de l’utilitaire chsh sur Ubuntu pour personnaliser vos sessions de terminal et adapter vos outils en toute sérénité.