Adicione o zsh a /etc/shells
:
command -v zsh | sudo tee -a /etc/shells
Agora você pode usar o chsh para definir o zsh como shell:
sudo chsh -s "$(command -v zsh)" "${USER}"
Veja esta documentação: Alterando seu shell de login
Eu instalei o ZSH em uma VM minha, onde eu compilei a partir da fonte. O local do ZSH é /usr/local/bin/zsh
quando eu executo chsh -s /usr/local/bin/zsh
ele gera chsh: /usr/local/bin/zsh is an invalid shell
. Eu também tentei isso com o sudo também. Como posso mudar isso?
Adicione o zsh a /etc/shells
:
command -v zsh | sudo tee -a /etc/shells
Agora você pode usar o chsh para definir o zsh como shell:
sudo chsh -s "$(command -v zsh)" "${USER}"
Veja esta documentação: Alterando seu shell de login
Você precisa adicionar /usr/local/bin/zsh
a /etc/shells
.
Primeiro, verifique se zsh
está listado como um shell válido por
cat /etc/shells
Se zsh
não estiver listado, instale-o. Por exemplo, se você usa apt
sudo apt-get install zsh
Execute a etapa 1 novamente e veja o caminho de zsh
. No meu caso, /usr/bin/zsh
e /usr/zsh
estão listados.
Como @ Stéphane Chazelas mencionou no comentário, se você gosta de compilar e instalar o shell do zero, certifique-se de adicionar o caminho em /etc/shells
.
Altere o shell usando
chsh -s /usr/bin/zsh
Na página de manual :
-s, --shell SHELL
The name of the user's new login shell. Setting this field to blank causes the system to select the default login shell.
Faça o logout e faça login novamente.