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.

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:


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.


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.


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.


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>

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

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.