chsh -s / usr / bin / zsh non funziona


24

Sto provando a cambiare permanentemente la mia shell in zsh usando il chshcomando, ma non funziona.

zsh è installato (tramite apt) e funziona bene quando lo invoco direttamente da un terminale prompt di bash. Ma non riesco a caricare zsh nei terminali per impostazione predefinita, e chsh sta facendo qualcosa di strano:

$ 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

Sembra che chsh sia riuscito a cambiare correttamente / etc / passwd, ma non la variabile env $ SHELL. Pertanto, i nuovi terminali iniziano sempre in bash e non in zsh.

Non sono sicuro dove cercare per risolvere questo problema. .bashrc, anche se non viene invocato fino a quando non viene specificata la shell? Qualsiasi aiuto apprezzato.


1
Non è possibile modificare la shell dopo aver effettuato nuovamente l'accesso al sistema?
vine_user

Controlla questa risposta .
Pablo A

Risposte:


34

È necessario disconnettersi nuovamente per rendere effettive queste modifiche. La shell definita nel file / etc / passwd è la shell di login :-) Quindi è necessario accedere effettivamente per quello.


2
Grazie. Sono così abituato a poter apportare modifiche a Linux senza riavviare, non mi è venuto in mente.
Kurtosis,

Ho dovuto effettivamente fare un riavvio perché abbia effetto - immagino che in qualche modo mi stesse ricollegando a una sessione di shell esistente.
Chris Kimpton,

Durante l'utilizzo di una connessione SSH, anche se si esce, il server potrebbe non chiudere completamente la connessione e la shell. Quindi, potrebbe essere necessario uccidere i processi (ssh e sh) che appartengono al tuo utente. (Ho avuto questo problema ed è stato facile trovare la soluzione, ma comunque, sono dovuto venire a questo post per vedere che dovevo disconnettermi.)
John Hamilton
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.