Comment changer votre shell par défaut sur Linux avec chsh

Bash n’est pas le seul shell Linux. Il est facile d’essayer d’autres shells, comme Zsh, qui est très populaire. Lorsque vous en avez trouvé un que vous aimez, utilisez la commande chsh pour en faire votre shell par défaut. Nous allons vous montrer comment.

Pourquoi un shell est important

La coquille se situe entre vous et le système d’exploitation. Il fournit l’environnement dans une fenêtre de terminal qui vous permet de taper des commandes et d’exécuter des programmes. Le shell vérifie votre saisie et détermine ce que vous voulez. S’il peut exécuter lui-même vos enchères, il le fait. S’il a besoin d’une aide extérieure, il recherche le chemin et trouve les programmes qui peuvent faire tout ce que vous avez demandé.

Il existe de nombreux shells différents disponibles sur Linux. Ils vous permettent tous d’effectuer les mêmes tâches principales: explorer le système de fichiers, travailler avec des fichiers, lancer des programmes et exécuter des scripts. Cependant, chacun accomplit ces tâches à sa manière et possède ses propres caractéristiques et particularités.

Les coquilles ont tendance à être conçues par des personnes qui souhaitent que les choses se comportent d’une manière spécifique. Si votre réflexion correspond à celle de ce concepteur, cette coque pourrait bien vous convenir. De plus, essayer un nouveau shell sur Linux est facile.

Dans la plupart des distributions Linux, y compris Ubuntu, le shell par défaut est bash. Il fait un excellent travail et est très capable. Cependant, un autre shell pourrait offrir une différence de gain de temps qui aurait un impact important sur votre flux de travail. Vous ne saurez jamais si vous ne regardez pas!

Un seau de coquillages

Nous avons déjà couvert les différents shells Linux, mais voici une introduction rapide aux plus courants:

bash: Le Bourne encore une fois la coquille est le défaut dans de nombreuses distributions.
rbash: Ce Limité bash shell fournit des fonctionnalités minimales à la personne ou au script qui y est exécuté.
cendre: Le Coquille Almquist est une version allégée de bash.
dash: Le shell Debian Alquist est le script shell par défaut dans Ubuntu. Alors que bash est la connexion par défaut et le shell interactif, dash est utilisé pour exécuter les processus système car il est beaucoup plus léger que bash.
zsh: La coque Z est une version moderne de la famille des coquillages bash. Il offre des améliorations intéressantes, comme les vérifications orthographiques des commandes et les corrections suggérées.
poisson: Ce coque interactive conviviale a été écrit à partir de zéro et n’est dérivé d’aucune des autres familles de shell. Il est conçu pour être convivial. Parmi ses nombreux autres avantages, Fish propose des suggestions de commandes basées sur votre historique et le contenu du dossier actuel, similaires à texte prédictive.
ksh: Le KornShell fournit un langage de script particulièrement puissant.

  Qu'est-ce que le code Konami et comment l'utilisez-vous?

Liste des coquilles installées

Pour voir quels shells sont installés sur votre ordinateur, utilisez cette commande. Il répertorie simplement le contenu du fichier / etc / shells:

cat /etc/shells

cat / etc / shells dans une fenêtre de terminal.

Nous avons mentionné bash, dash et rbash, mais qu’est-ce que sh?

sh est le Thompson shell, écrit en 1971 par Ken Thompson de Bell Labs la célébrité. Il n’est plus entretenu et a depuis longtemps été remplacé par des coquilles modernes. Il est inclus uniquement pour maintenir la compatibilité avec les scripts plus anciens qui ont toujours les éléments suivants comme première ligne:

#!/bin/sh

Cela demande au système d’utiliser le shell sh pour exécuter le script. Avez-vous vraiment cet ancien shell sur votre machine et est-il utilisé pour exécuter vos scripts? La commande which nous indiquera quel programme s’exécute réellement lorsque vous tapez une commande.

Voyons ce qui s’exécute lorsque vous tapez sh:

which sh

Cela semble trouver un binaire. si nous creusons un peu plus profondément, nous verrons que c’est un lien symbolique qui pointe en fait vers dash, le shell léger utilisé pour exécuter des scripts:

ls -l /bin/sh

qui sh dans une fenêtre de terminal.

C’est un moyen simple et léger de fournir un filet de sécurité pour les scripts qui s’attendent à trouver sh sur les systèmes modernes.

  Comment installer le thème Nordic GTK sur Linux

Installer un autre shell

Installons la coquille de poisson et définissons-la comme valeur par défaut pour Dave. Sur Ubuntu, nous tapons la commande suivante:

sudo apt-get install fish

sudo apt-get install fish dans une fenêtre de terminal.

Sur Manjaro, utilisez pacman:

sudo pacman -Sy fish

sudo pacman -Sy fish dans une fenêtre de terminal.

Sur Fedora, tapez ce qui suit:

sudo dnf install fish

sudo dnf installe fish dans une fenêtre de terminal.

Une fois l’installation terminée, vous pouvez à nouveau vérifier les shells installés:

cat /etc/shells

cat / etc / shells dans une fenêtre de terminal.

Notre nouvelle coquille apparaît comme / usr / bin / fish. Prenez note de ce chemin – vous en aurez bientôt besoin.

La variable d’environnement $ SHELL

La variable d’environnement $ SHELL contient le nom de votre shell actuel. Nous pouvons vérifier sur lequel il est défini avec echo:

echo $SHELL

Commençons la coquille de poisson:

fish

Maintenant, vérifions à nouveau ce que dit la variable d’environnement $ SHELL:

echo $SHELL

echo $ SHELL dans une fenêtre de terminal.

La première fois que nous utilisons echo $ SHELL, nous sommes dans le shell bash. La variable d’environnement contient le chemin vers l’exécutable bash, / bin / bash.

Lorsque nous lançons la coquille de poisson, nous recevons un message de bienvenue amical et l’invite de commande change. Ce qui pourrait être surprenant, c’est que l’environnement $ SHELL contient toujours le chemin vers l’exécutable bash, / bin / bash. C’est normal, c’est normal.

Lorsque vous lancez un nouveau shell (ou tout autre programme), il hérite de l’environnement du shell parent. Ainsi, la coquille de poisson hérite des variables d’environnement globales et exportées de la coquille bash. Comme la valeur de la variable d’environnement $ SHELL n’a pas été modifiée, elle a la même valeur dans la coquille de poisson que dans la coquille bash.

Nous gérons des poissons comme n’importe quel autre programme. Nous pouvons également utiliser la sortie pour sortir de la coquille de poisson. Il se ferme comme n’importe quel autre programme et nous retournons au shell bash.

C’est génial pour essayer de nouvelles coquilles, voir ce qu’elles peuvent faire et si vous vous entendez bien avec elles. Vous pouvez explorer avant de faire le saut et en adopter un comme shell de choix.

  Moodies pour iPhone analyse l'humeur et les émotions de votre voix

Si vous décidez de faire du poisson – ou de toute autre coquille – votre valeur par défaut, vous devrez utiliser la commande chsh.

La commande chsh

La commande chsh vous permet de changer votre shell par défaut. L’astuce est de savoir que cela vous permet de modifier à la fois la connexion par défaut et les shells interactifs par défaut. Vous voudrez peut-être changer l’un ou l’autre, ou les deux.

Chaque fois que vous vous connectez pour obtenir une invite de commande, vous utilisez le shell configuré pour être votre shell de connexion. Lorsque vous êtes déjà connecté et ouvrez une fenêtre de terminal, vous utilisez le shell configuré pour être votre shell interactif. Il peut s’agir de coques identiques ou différentes.

Pour définir votre shell de connexion, utilisez chsh sans paramètres:

chsh

chsh dans une fenêtre de terminal.

Vous êtes invité à entrer votre mot de passe. Ensuite, vous devez taper le chemin vers le nouveau shell et appuyer sur Entrée.

Si nous établissons une connexion à distance à cet ordinateur de test depuis un autre, nous nous retrouverons dans la coquille de poisson une fois que nous nous sommes connectés.

Connexion SSH montrant la coquille de poisson comme shell de connexion, dans une fenêtre de terminal.

Pour changer votre shell interactif, utilisez chsh avec l’option -s (shell). Passez le chemin vers le nouveau shell sur la ligne de commande:

chsh -s /usr/bin/fish

chsh -s / usr / bin / fish dans une fenêtre de terminal.

Vous êtes invité à entrer votre mot de passe et renvoyé à l’invite de commande de votre shell actuel. Vous devez vous déconnecter puis vous reconnecter pour que la modification prenne effet. Lorsque vous le faites, vous verrez le message d’accueil et l’invite de commande de la coquille de poisson.

La variable d’environnement $ SHELL contient maintenant le chemin vers votre nouveau shell par défaut:

echo $SHELL

echo $ SHELL dans une fenêtre de terminal.

Changer le shell d’un autre compte utilisateur

Si vous disposez des privilèges root et que vous pouvez utiliser sudo, vous pouvez modifier les shells d’autres comptes utilisateur. La commande est la même que précédemment, avec l’ajout du nom d’utilisateur de cette personne à la ligne de commande:

sudo chsh -s /usr/bin/fish mary

sudo chsh -s / usr / bin / fish mary dans une fenêtre de terminal.

Lors de la prochaine connexion de Mary, elle verra le nouveau shell lorsqu’elle ouvrira une fenêtre de terminal.

l'utilisateur mary à l'invite de commande fish shell, dans une fenêtre de terminal.

Chaque