Como alterar o shell padrão para ZSH - chsh diz “shell inválido”

32

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?

    
por Zach Russell 28.01.2014 / 20:44

3 respostas

43

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

    
por 28.01.2014 / 20:50
8

Você precisa adicionar /usr/local/bin/zsh a /etc/shells .

    
por 28.01.2014 / 20:51
3

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.

    
por 28.04.2017 / 11:03