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


Points clés à retenir

  • Essayer différents shells Linux, comme Zsh, peut être un processus bénéfique et simple pour trouver celui qui correspond à vos préférences.
  • Chaque shell a ses propres fonctionnalités et sa propre manière d’effectuer les tâches, et différents shells peuvent avoir un impact considérable sur votre flux de travail.
  • La commande chsh vous permet de changer votre shell par défaut.


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 qui vous plaît, utilisez le chsh commande pour en faire votre shell par défaut. Nous allons vous montrer comment.


Pourquoi une coque est importante

La coquille se situe entre vous et le système d’exploitation. Il fournit l’environnement à l’intérieur d’une fenêtre de terminal qui vous permet de saisir des commandes et d’exécuter des programmes. Le shell vérifie votre entrée 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 capables de faire tout ce que vous demandez.

Il existe de nombreux shells différents disponibles sous 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, ils accomplissent chacun ces tâches à leur manière et ont leurs propres particularités et particularités.

Les coques 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 sous Linux est simple.

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 performant. Cependant, un autre shell pourrait offrir un gain de temps qui aurait un impact important sur votre flux de travail. Vous ne saurez jamais si vous ne regardez pas !

Quels sont les meilleurs shells Linux ?

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

  • frapper: Le Bourne encore une fois, la coque est le défaut dans de nombreuses distributions.
  • rbash : Ce Limité bash shell fournit des fonctionnalités minimales à la personne ou au script qui s’y exécute.
  • cendre: Le Coquille d’Almquist est une version allégée de bash.
  • tiret: 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 des processus système car il est beaucoup plus léger que bash.
  • zsh : La coque Z est une version moderne du bash famille de coquilles. Il offre des améliorations intéressantes, comme des vérifications orthographiques des commandes et des suggestions de corrections.
  • 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 destiné à ê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.

Répertorier les shells installés

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, dashet rbashmais comment ça sh?

sh est le Thompson shell, écrit en 1971 par Ken Thompson de Laboratoires Bell notoriété. Il n’est plus entretenu et a depuis longtemps été remplacé par des obus modernes. Il est inclus uniquement pour maintenir la compatibilité avec les anciens scripts dont la première ligne est toujours la suivante :

#!/bin/sh

Cela demande au système d’utiliser le sh shell pour exécuter le script. Avez-vous vraiment cet ancien shell sur votre machine et est-il utilisé pour exécuter vos scripts ? Le which La commande nous dira 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. Mais si nous creusons un peu plus, nous verrons qu’il s’agit d’un lien symbolique qui pointe en réalité vers dashle shell léger utilisé pour exécuter des scripts :

ls -l /bin/sh

qui apparaît dans une fenêtre de terminal

C’est une façon simple et simple de fournir un filet de sécurité aux scripts qui s’attendent à trouver sh sur les systèmes modernes.

Installer un autre shell

Installons le fish shell et définissez-le comme valeur par défaut pour dave. Sur Ubuntu, on tape 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 installer fish dans une fenêtre de terminal

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

cat /etc/shells

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

Notre nouveau shell apparaît comme /usr/bin/fish. Prenez note de ce chemin, vous en aurez besoin sous peu.

La variable d’environnement $SHELL

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

echo $SHELL

Commençons le fish coquille:

fish

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

echo $SHELL

echo $SHELL dans une fenêtre de terminal

La première fois que nous utilisons echo $SHELLnous sommes dans le bash coquille. La variable d’environnement contient le chemin d’accès au bash exécutable, /bin/bash.

Lorsque nous lançons le fish shell, nous recevons un message de bienvenue convivial et l’invite de commande change. Ce qui pourrait surprendre, c’est $SHELL l’environnement ouvre toujours la voie à la bash exécutable, /bin/bash. Ce n’est pas grave, c’est normal.

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

Étaient en train de courir fish comme n’importe quel autre programme. Nous pouvons également utiliser exit pour sortir du fish coquille. Il se ferme comme n’importe quel autre programme et nous revenons au bash coquille.

C’est idéal pour essayer de nouveaux obus, voir ce qu’ils peuvent faire et si vous vous entendez bien avec eux. Vous pouvez explorer avant de faire le saut et en adopter un comme coque de prédilection.

Si vous décidez de faire le fish—ou tout autre shell – par défaut, vous devrez utiliser le chsh commande.

La commande chsh

Le chsh La commande vous permet de changer votre shell par défaut. L’astuce est d’être conscient que cela vous permet de modifier à la fois la connexion par défaut et les shells interactifs par défaut. Vous souhaiterez 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é à saisir votre mot de passe. Ensuite, vous devez taper le chemin d’accès au nouveau shell et appuyer sur Entrée.

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

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

Pour modifier votre shell interactif, utilisez chsh avec le -s (coque). Transmettez le chemin d’accès au 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é à saisir votre mot de passe et êtes renvoyé à l’invite de commande de votre shell actuel. Vous devez vous déconnecter et vous reconnecter pour que la modification prenne effet. Lorsque vous le ferez, vous verrez le message d’accueil et le fish invite de commande shell.

Le $SHELL La variable d’environnement contient désormais le chemin d’accès à 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 pouvez utiliser sudo, vous pouvez modifier les shells d’autres comptes d’utilisateurs. 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

Quand mary Lors de sa prochaine connexion, 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

Tout le monde a un favori

Tant que vous êtes à l’aise avec votre choix de coque et qu’elle fonctionne pour vous, c’est super ! N’oubliez pas qu’il doit être capable d’exécuter des scripts courants, tels que des routines d’installation. Pour les obus mentionnés ici, cela ne devrait pas poser de problème.

Bien sûr, vous pouvez également télécharger et installer un nouveau shell, et le tester sans apporter de modifications à la configuration de votre ordinateur. Quand tu es prêt à te marier, chsh fera la cérémonie pour vous.



Vous pouvez lire l’article original (en Angais) sur le sitewww.howtogeek.com