chsh -s / usr / bin / zsh funktioniert nicht

24

Ich versuche, meine Shell mit dem chshBefehl dauerhaft in zsh zu ändern , aber es funktioniert nicht.

zsh ist installiert (via apt) und funktioniert einwandfrei, wenn ich es direkt von einem Bash-Prompt-Terminal aus aufrufe. Aber ich kann nicht erreichen, dass zsh standardmäßig in Terminals geladen wird, und chsh macht etwas Seltsames:

$ echo $SHELL
/bin/bash
$ which zsh
/usr/bin/zsh
$ chsh -s /usr/bin/zsh
Password: 
$ echo $SHELL
/bin/bash
$ grep kurtosis /etc/passwd
kurtosis:x:1000:1000:kurtosis,,,:/home/kurtosis:/usr/bin/zsh

Es sieht so aus, als ob es chsh gelungen ist, / etc / passwd, aber nicht die Variable $ SHELL env, korrekt zu ändern. Neue Terminals starten daher immer in bash und nicht in zsh.

Ich bin nicht sicher, wo ich nach einer Fehlerbehebung suchen soll. .bashrc, obwohl es nicht aufgerufen wird, bis die Shell angegeben ist? Jede Hilfe dankbar.

Kurtosis
quelle
1
Können Sie die Shell nicht ändern, nachdem Sie sich erneut im System angemeldet haben?
vine_user
Überprüfen Sie diese Antwort .
Pablo A

Antworten:

34

Sie müssen sich erneut abmelden, damit diese Änderungen wirksam werden. Die in der Datei / etc / passwd definierte Shell ist Ihre Login- Shell :-) Sie müssen sich also dafür anmelden.

Januar
quelle
2
Vielen Dank. Ich bin es so gewohnt, Änderungen an Linux ohne Neustart vornehmen zu können, mir ist das einfach nicht in den Sinn gekommen.
Kurtosis
Ich musste tatsächlich einen Neustart durchführen, damit er wirksam wurde - ich glaube, es war irgendwie, dass ich mich wieder mit einer vorhandenen Shell-Sitzung verband.
Chris Kimpton
Selbst wenn Sie eine ssh-Verbindung verwenden, kann es vorkommen, dass der Server die Verbindung und die Shell nicht vollständig schließt. Daher müssen Sie möglicherweise die Prozesse (ssh und sh) beenden, die Ihrem Benutzer gehören. (Ich hatte dieses Problem und es war einfach, die Lösung zu finden, aber dennoch musste ich zu diesem Beitrag kommen, um zu sehen, dass ich mich abmelden musste.)
John Hamilton