Cet article explique comment changer le shell par défaut sous Linux. Cela vous permet de définir bash, sh, zsh, csh, fish, etc. comme shell.
L'article fournit des instructions sur la façon de changer le shell de connexion à partir de la ligne de commande avec chsh, ou comment changer le shell pour une application de terminal spécifique uniquement. Bien que l'article soit destiné aux utilisateurs de Linux, cela devrait également fonctionner sur d'autres systèmes de type Unix.
Comment changer le shell de connexion par défaut avec chsh (depuis la ligne de commande)
Pour changer le shell de connexion par défaut, nous utilisons chsh
, un outil en ligne de commande pour changer le shell de connexion.
Ce programme change le shell de connexion en changeant le /etc/passwd
Fichier et paramétrage du $SHELL
Variable d'environnement. Vous pouvez remplacer le shell par défaut dans une application de terminal en définissant le shell dans les paramètres du terminal - les détails peuvent être trouvés dans la deuxième partie de cet article.
Une note aux utilisateurs de Fedora. Fedora n'a pas installé chsh par défaut et pour l'utiliser, vous avez besoin d'un paquet appelé. pour installer util-linux-user
. Si vous souhaitez ignorer l'installation de ce package, vous pouvez lchsh
Pour changer le shell de connexion par défaut :
sudo lchsh $USER
Il est important de noter qu'un utilisateur normal avec chsh ne peut modifier le shell de connexion que pour le compte actuel, tandis que le superutilisateur peut modifier le shell de connexion pour n'importe quel compte, y compris le compte root. De plus, le comportement par défaut pour les utilisateurs non root est de n'accepter que les shells qui sont dans la liste /etc/shells
Fichier et émettre un avertissement à l'utilisateur root.
Alors avant de changer de coquille, Listez toutes les moules qui sont listées dans le /etc/shells
Fichier de votre système Linux en utilisant la commande suivante :
cat /etc/shells
Exemple avec sortie :
$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
/usr/bin/tmux
/bin/zsh
Si le shell que vous souhaitez utiliser n'est pas répertorié ici, il se peut qu'il ne soit pas installé sur votre système. Installez-le donc (par exemple, installez Zsh sur Debian / Ubuntu / Linux Mint / Pop! _OS avec :sudo apt install zsh
) et vérifiez à nouveau.
Pour modifier le shell de votre utilisateur, procédez comme suit :
chsh
Cela fonctionne chsh
en mode interactif, vous demande le mot de passe, puis répertorie votre shell actuel (la plupart des distributions Linux utilisent Bash comme shell par défaut) et vous demande d'entrer une valeur pour votre nouveau shell. Voici la commande avec sa sortie :
$ chsh
Password:
Changing the login shell for logix
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
Pour changer de shell, saisissez le chemin du nouveau shell (qui existe en /etc/shells
) et appuyez sur le Enter
Clé.
Par exemple, pour changer le shell de l'utilisateur actuel de bash à zsh :
$ chsh
Password:
Changing the login shell for logix
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]: /bin/zsh
Si vous utilisez une version de chsh qui ne démarre pas avec une invite de commande interactive après son exécution chsh
, modifiez directement le shell de connexion de votre utilisateur :
chsh -s <SHELL>
Par ex. pour changer le shell en Zsh :
chsh -s /bin/zsh
Après avoir modifié le shell de votre compte, déconnectez-vous et reconnectez-vous pour utiliser le nouveau shell.
Pour changer le shell de connexion pour un autre utilisateur ou pour l'utilisateur root, connectez-vous en tant que root à l'invite du shell. à su -
, sudo -i
, sudo su
, etc. et exécutez :
- Pour changer le shell du compte root (et lorsque vous y êtes invité, entrez le shell de connexion souhaité avec son chemin complet) :
chsh
- Pour changer le shell d'un autre utilisateur (cela fonctionne également pour l'utilisateur root avec
root
comme nom d'utilisateur) :
chsh -s <SHELL> <USERNAME>
Cette fois, nous avons utilisé chsh avec ce -s
-Option qui change directement le shell de connexion (ne s'exécute pas en mode interactif). Ici, SHELL
est le nouveau shell (par exemple /bin/zsh
) et USERNAME
est l'utilisateur pour lequel vous modifiez le shell ; par exemple pour changer le shell en /bin/zsh
pour l'utilisateur Logix
, utiliseriez-vous :chsh -s /bin/zsh Logix
).
Vous pourriez également aimer ceci :Starship est une invite de shell minimale et rapide dans Rust
Changer le shell pour votre utilisateur dans une application de terminal
Vous pouvez utiliser un shell différent du shell de connexion ($SHELL
) pour une application de terminal spécifique, si cette application autorise la définition d'un shell personnalisé ou l'exécution d'une commande personnalisée à la place du shell par défaut.
En remarque, vous pouvez également modifier le shell actuel (pas de changement permanent) en entrant la commande shell que vous souhaitez utiliser dans un terminal (par exemple, si vous tapez « zsh », vous passerez à l'utilisation de zsh pour cette session ; exit) en en tapant "quitter").
Pour prendre le terminal GNOME (utilisé comme terminal par défaut dans les bureaux GNOME et Cinnamon). Ouvrez son Preferences
, cliquez sur le profil actuellement actif (généralement étiqueté Par défaut ou Sans titre si vous ne l'avez pas modifié ou ajouté de nouveaux profils) dans la barre latérale gauche, puis cliquez sur Command
Onglet :
Ici, vous pouvez définir un shell personnalisé qui ne sera utilisé qu'avec cette application. Activez le Run a custom command instead of my shell
Option, puis dans le Custom command
Entrez le chemin complet du shell que vous souhaitez utiliser, par ex. /bin/zsh
, /bin/bash
, Etc.
Dans Terminal Xfce4 , ouvrez ce Preferences
et sur le General
Tab vous avez une option appelée. activer Run a custom command instead of my shell
, puis entrez la commande personnalisée en dessous (il s'agit du shell que vous souhaitez utiliser avec ce terminal, par exemple /bin/zsh
, /usr/bin/fish
, etc.).
Utilisation des consoles plasma de KDE , allez à Settings -> Edit Current Profile
, et sur le General
Tab, changez le Command
Champ pour le chemin complet du shell que vous souhaitez utiliser (encore une fois, quelque chose comme :/bin/zsh
, /bin/bash
, /usr/bin/fish
, etc.).
Utiliser Guake , vous pouvez utiliser le shell utilisateur de votre Preferences
, sur le Shell
Onglet où vous avez une option appelée. Trouver Default interpreter
cela permet à n'importe quel shell listé dans d'être sélectionné /etc/shells
.
Pour les terminaux qui vous permettent d'exécuter un shell personnalisé, vous devriez également trouver une option qui vous permet d'exécuter la commande en tant que shell de connexion (généralement simplement appelée "exécuter la commande en tant que shell de connexion"). Pour plus d'informations sur les différences entre un shell de connexion et un shell interactif, consultez cette page.
Le réglage est le même dans la plupart des cas, donc je ne donnerai pas d'autres exemples. Il convient de noter, cependant, que toutes les applications de terminal n'ont pas d'options pour permettre l'utilisation d'un shell personnalisé - dans de tels cas, utilisez le chsh
Commande pour changer le shell de connexion comme décrit ci-dessus.
Vous pourriez aimer ceci :179 schémas de couleurs pour votre terminal Linux basé sur Gtk (terminal Gnome, Tilix, terminal Xfce, plus)