Wie mache ich ZSH zur Standard-Shell?


124

Ich versuche, ZSH als Standardshell festzulegen, aber es wird immer wieder auf bash zurückgesetzt.

Ich habe diesen Code ausprobiert:

sudo chsh -s $(which zsh)

Ich habe auch versucht:

sudo chsh -s /bin/zsh 

Habe diese Befehle auch ohne sudo ausprobiert. Irgendwelche Ideen, was ich sonst noch tun muss. Wenn Sie ZSH in bash ausführen, wird es geladen und funktioniert einwandfrei, aber ich möchte es als Standard-Shell festlegen.

Antworten:


217

Einfach mit chsh:

chsh -s $(which zsh)

ohne sudo sollte funktionieren. Wenn Sie sudoes verwenden, ändert sich die Shell nicht für Ihren Arbeitsbenutzer, sondern für root

Melden Sie sich abschließend von Ihrem Computer ab und wieder an .

Fehlerbehebung:


17
Ich habe das gleiche Problem und die Antwort löst es nicht
Aswin Murugesh

@AswinMurugesh Überprüfen Sie meine Antwort
Shailesh Kalamkar

9
Sie können auch sudo chsh -s / bin / zsh userName
Micha Roon

15
Hinweis: Ich musste mein System neu starten, bevor dies wirksam wurde.
KevinO

Nein, es hat nicht funktioniert.
Haha TTpro

40

Ich habe dies im Superuser- Forum gefunden

Öffne / etc / passwd:

sudo vi /etc/passwd

Suchen Sie die Zeile mit Ihrem Benutzernamen:

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

und ersetze bash mit zsh:

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

Melden Sie sich ab und wieder an, damit die Änderungen wirksam werden.


11
Sie sollten mit diesem Ansatz sehr vorsichtig sein - es ist normalerweise nicht die beste Idee, sich mit ihm zu beschäftigen/etc/passwd
Thomas Ward

Obwohl ich diese Methode nicht verwendet habe, konnte ich den Effekt vonchsh -s `which zsh`
jchook 30.09.17

HA Ja das total hat meinen User gefickt. Ich kann mich nicht wieder anmelden.
Mark Carpenter Jr

6

Sie können dies auch tun:

öffne deine bashrc Datei in deinem Lieblingseditor

sudo nano ~/.bashrc

Fügen Sie dann die Zeile oben in die Datei ein

exec zsh

Der Befehl wird jedes Mal ausgeführt, wenn Sie das Terminal laden und Ihre zsh-Shell ausführen.


13
und es wird auch alle Ihre nicht interaktiven Jobs ( scpzum Beispiel) brechen .
Jakuje

Entschuldigen Sie die Ablehnung, aber ändern /etc/passwdoder chshsind bessere Lösungen und zuverlässiger.
Timo

Danke, das hat es geschafft. @Timo Ich habe die Änderung in / etc / passwd und / oder chsh vorgenommen, aber meine Standardeinstellung ist immer wieder auf bash zurückgegangen. Ich fügte hinzu, Exec Zsh nach geposteten Antwort und es hat funktioniert.
Stryker

3

Wenn zsh nicht / bin / zsh ist, funktioniert chsh nicht. Unter Ubuntu ist es / usr / bin / zsh. so tun chsh -s /usr/bin/zshoder chsh -s `which zsh`sollte funktionieren. Sie müssen sich auch erneut bei der Desktopsitzung anmelden.


Auf meinem Ubuntu VPS ist es / bin / zsh
Wilhelm Erasmus

Auf meinem Ubuntu sehe ich es in beiden /bin/zshund/usr/bin/zsh
blue_chip

2
In meinem (14.04, mit zsh von main repo) gibt es zwei zshs, und beide sind zweischichtige Symlinks: / usr / bin / zsh -> / etc / alternatives / zsh-usrbin -> / bin / zsh5 und / bin / zsh -> / etc / alternatives / zsh -> / bin / zsh5
wjandrea

1

Ich hatte ein Problem mit der Berechtigung, die Shell unter dem aktuellen Benutzer zu ändern, aber das nächste Mal hilft mir (Sie sollten den richtigen 'zsh'-Ordner für Ihren Computer festlegen):

sudo chsh -s /bin/zsh <myUserName>

0

Seltsamerweise hat die "akzeptierte" Antwort bei mir nicht funktioniert

chsh: PAM: Authentication failure

Um dieses Problem zu beheben, bearbeiten Sie Ihre / etc / passwd und vergewissern Sie sich, dass sie auf den zsh-Speicherort verweist. (Sie finden dies, indem Sie "which zsh" ausführen.) In meinem Fall sah der Benutzer "webmaster" folgendermaßen aus:

webmaster:x:1001:1001:webmaster,,,:/var/www/webmaster:/usr/bin/zsh

Ich glaube, es soll nach einem Passwort fragen. Ich habe den gleichen Fehler bei meiner vorherigen Neuinstallation erhalten. Die aktuelle Version hat gut funktioniert
Wilhelm Erasmus

Jemand anderes hatte das gleiche Problem, und es stellte sich heraus, dass sie gelaufen waren chsh -s zsh, was ihre Passwd-Eingabe falsch machte.
wjandrea

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.