Como fazer do ZSH o shell padrão?

124

Estou tentando definir o ZSH como meu shell padrão, no entanto, ele volta sempre ao bash.

Eu tentei este código:

sudo chsh -s $(which zsh)

Eu também tentei:

sudo chsh -s /bin/zsh 

Também tentei esses comandos sem o sudo. Alguma idéia do que mais eu preciso fazer. Ao executar o ZSH a partir do bash, ele carrega e funciona bem, mas eu gostaria de defini-lo como o shell padrão.

Tom
fonte

Respostas:

217

Apenas usando chsh:

chsh -s $(which zsh)

sem sudo deve funcionar. Se você o usar sudo, o shell não será alterado para o usuário que está trabalhando, mas para o usuário root.

Por fim, faça logoff do seu computador e faça login novamente .

Solução de problemas:

Florian Diesch
fonte
17
Eu tenho o mesmo problema e a resposta não o resolve #
Aswin Murugesh
@AswinMurugesh Verifique minha resposta
Shailesh Kalamkar
9
você também pode executar sudo chsh -s bin / zsh usuário /
Micha Roon
15
Nota: tive que reiniciar meu sistema antes que isso entrasse em vigor.
KevinO
não, não funcionou.
Haha TTpro
40

Encontrei isso no fórum de superusuário

Abra / etc / passwd:

sudo vi /etc/passwd

Encontre a linha com seu nome de usuário:

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

e substitua bash por zsh:

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

Saia e faça login novamente para que as alterações entrem em vigor.

Shailesh Kalamkar
fonte
11
Você deve ter muito cuidado com essa abordagem - geralmente não é a melhor idéia para brincar com isso/etc/passwd
Thomas Ward
Mesmo que eu não usar esse método, ele me ajudou a verificar o efeito dechsh -s `which zsh`
jchook
HA Sim, esse total fodeu meu usuário. Não consigo fazer login novamente.
Mark Carpenter Jr
6

Você também pode fazer isso:

abra seu arquivo bashrc no seu editor favorito

sudo nano ~/.bashrc

adicione a linha abaixo da parte superior do arquivo

exec zsh

Ele executará o comando toda vez que você carregar o terminal e executar seu shell zsh.

Saddam H
fonte
13
e também interromperá todos os seus trabalhos não interativos ( scppor exemplo).
Jakuje 11/03/16
Desculpe pelo voto negativo, mas alterar /etc/passwdou chshsão melhores soluções e mais confiáveis.
Timo
Graças a isso. @Timo Fiz a alteração no / etc / passwd e / ou chsh, mas meu padrão continuava voltando ao bash. Eu adicionei o exec zsh conforme a resposta postada e funcionou.
Stryker
3

Se zsh não for / bin / zsh, o chsh não funcionará. No Ubuntu, é / usr / bin / zsh. fazê-lo chsh -s /usr/bin/zshou chsh -s `which zsh`deve funcionar. Também é necessário fazer login novamente na sessão da área de trabalho.

jbp
fonte
No meu Ubuntu VPS é / bin / zsh
Wilhelm Erasmus
No meu Ubuntu, eu o vejo nos dois /bin/zshe/usr/bin/zsh
blue_chip
2
No meu (14.04, com o zsh do repositório principal), existem dois zsh's e são links simbólicos de duas camadas: / usr / bin / zsh -> / etc / alternative / zsh-usrbin -> / bin / zsh5 e / Você pode usar o seguinte
comando
1

Eu tive um problema com as permissões para alterar o shell no usuário atual, mas a seguir me ajuda (você deve definir a pasta 'zsh' correta para o seu computador):

sudo chsh -s /bin/zsh <myUserName>
Rib47
fonte
0

Estranho, a resposta "aceita" não funcionou para mim quando cheguei

chsh: PAM: Authentication failure

Para resolver esse problema, edite seu / etc / passwd e verifique se ele aponta para o local zsh. (Você pode encontrar isso executando "what zsh"). No meu caso, meu usuário chamado "webmaster" era assim:

webmaster:x:1001:1001:webmaster,,,:/var/www/webmaster:/usr/bin/zsh
John Crawford
fonte
Eu acredito que deveria pedir uma senha. Eu recebi o mesmo erro na minha instalação mint anterior. O atual funcionou bem
Wilhelm Erasmus
Outra pessoa teve o mesmo problema, e eles correram chsh -s zsh, o que fez com que sua entrada de senha estivesse incorreta.
Wjandrea 21/17/17
0

Digite o terminal

sudo chsh -s $(which zsh) root
Valmor Nascimento
fonte