Comment faire de ZSH le shell par défaut?

124

J'essaie de définir ZSH comme shell par défaut, mais il continue de revenir à bash.

J'ai essayé ce code:

sudo chsh -s $(which zsh)

J'ai aussi essayé:

sudo chsh -s /bin/zsh 

Aussi essayé ces commandes sans sudo. Toutes les idées sur ce que je dois faire d'autre. Lorsque vous utilisez ZSH depuis bash, il se charge et fonctionne correctement, mais j'aimerais le définir comme shell par défaut.

À M
la source

Réponses:

217

Juste en utilisant chsh:

chsh -s $(which zsh)

sans sudo devrait fonctionner. Si vous l'utilisez sudo, le shell ne changera pas pour l'utilisateur actif mais pour l'utilisateur root.

Enfin, déconnectez-vous de votre ordinateur et reconnectez-vous .

Dépannage:

Florian Diesch
la source
17
J'ai le même problème et la réponse ne le résout pas
Aswin Murugesh
@AswinMurugesh Consultez ma réponse
Shailesh Kalamkar
9
vous pouvez également exécuter sudo chsh -s / bin / zsh nomutilisateur
Micha Roon
16
Remarque: je devais redémarrer mon système avant que cela ne prenne effet.
KevinO
non, ça n'a pas marché.
Haha TTpro
40

J'ai trouvé ceci sur le forum de superutilisateur

Ouvrez / etc / passwd:

sudo vi /etc/passwd

Trouvez la ligne avec votre nom d'utilisateur:

username:x:1634231:100:Your Name:/home/username:/bin/bash

et remplacez bash par zsh:

username:x:1634231:100:Your Name:/home/username:/bin/zsh

Déconnectez-vous et reconnectez-vous pour que les modifications prennent effet.

Shailesh Kalamkar
la source
11
Vous devriez être très prudent avec cette approche - ce n'est généralement pas la meilleure idée d'aller se promener avec/etc/passwd
Thomas Ward
Même si je n'ai pas utilisé cette méthode, cela m'a permis de vérifier l'effet dechsh -s `which zsh`
jchook le
HA Oui, ce total a baisé mon utilisateur. Je ne peux pas me reconnecter.
Mark Carpenter Jr16
6

Vous pouvez aussi faire ceci:

ouvrez votre fichier bashrc dans votre éditeur préféré

sudo nano ~/.bashrc

puis ajoutez la ligne en haut du fichier

exec zsh

Il exécutera la commande chaque fois que vous chargerez le terminal et exécuterez votre shell zsh.

Saddam H
la source
13
et tous vos travaux non interactifs seront également interrompus ( scppar exemple).
Jakuje
Désolé pour le vote négatif, mais changer /etc/passwdou chshsont de meilleures solutions et plus fiable.
Timo
Merci qui l'a fait. @Timo J'ai fait le changement sur / etc / passwd et ou chsh mais ma valeur par défaut revenait à bash. J'ai ajouté exec zsh selon la réponse publiée et cela a fonctionné.
Stryker
3

Si zsh n'est pas / bin / zsh, alors chsh ne fonctionnera pas. Sur Ubuntu, il s’agit de / usr / bin / zsh. Ce faisant, chsh -s /usr/bin/zshou chsh -s `which zsh`devrait fonctionner. Vous devez également vous reconnecter à la session de bureau.

jbp
la source
Sur mon VPS Ubuntu c'est / bin / zsh
Wilhelm Erasmus
Sur mon Ubuntu, je le vois à la fois /bin/zshet/usr/bin/zsh
blue_chip
2
Sur le mien (14.04, avec zsh du référentiel principal), il y a deux zsh, qui sont tous deux des liens symboliques à deux couches: / usr / bin / zsh -> / etc / alternatives / zsh-usrbin -> / bin / zsh5 et / bin / zsh -> / etc / alternatives / zsh -> / bin / zsh5
wjandrea
1

J'ai eu un problème avec les autorisations de changer de shell sous l'utilisateur actuel mais m'aide ensuite (vous devez définir le dossier 'zsh' correct pour votre ordinateur):

sudo chsh -s /bin/zsh <myUserName>
Rib47
la source
0

Étrange, la réponse "acceptée" n'a pas fonctionné pour moi car j'ai eu

chsh: PAM: Authentication failure

Pour résoudre ce problème, éditez votre / etc / passwd et assurez-vous qu’il pointe vers l’emplacement zsh. (Vous pouvez trouver ceci en exécutant "which zsh") Dans mon cas, mon utilisateur appelé "webmaster" ressemblait à ceci:

webmaster:x:1001:1001:webmaster,,,:/var/www/webmaster:/usr/bin/zsh
John Crawford
la source
Je crois que c'est censé demander un mot de passe. J'ai eu la même erreur sur mon précédent programme d'installation. L’actuel a bien fonctionné cependant
Wilhelm Erasmus
Quelqu'un d'autre a eu le même problème, et il s'est avéré qu'ils s'étaient exécutés chsh -s zsh, ce qui rendait leur entrée de mot de passe incorrecte.
Wjandrea
0

Tapez le terminal

sudo chsh -s $(which zsh) root
Valmor Nascimento
la source