Mudando do zsh para o bash no OSX e vice-versa?


194

Então, estou aprendendo a desenvolver no Rails e descobri o poder do zsh. No entanto, para algumas das minhas outras tarefas, desejo usar o Bash normal. Embora eles sejam iguais, eu me sinto à vontade com o layout do bash em algumas situações. Como alternar entre as opções, ou ativar e desativar o zsh? Obrigado!

Respostas:


382

Você pode usar apenas execpara substituir seu shell atual por um novo shell:

Mudar para bash:

exec bash

Mudar para zsh:

exec zsh

Isso não afetará as novas janelas de terminal nem nada, mas é conveniente.


1
De nada! Se você estiver satisfeito com esta resposta, reserve um momento para marcá-la como aceita, marcando a marca de seleção à esquerda da resposta. Obrigado!
Larsks

1
Ou simplesmente invoque o zsh e, quando terminar, exitvolte ao bash. Executar parece desnecessário e indesejável.
Chris Page

Tudo depende do que você espera que a janela do terminal faça ao sair. Acho que iniciar um subshell é desnecessário e indesejável.
larsks

2
Como você altera o padrão? Além disso, quando executo "exec bash" no zsh, ele não gera meu bash_profile.
kalehv

1
Há momentos em que eu quero usar o zsh e outros em que isso interfere no que eu quero fazer. Definir o padrão para frente e para trás é uma péssima idéia, portanto esta é a solução perfeita !!! parabéns !!
Bob Roberts

126

você pode tentar chsh -s /bin/bashdefinir o bash como padrão ou chsh -s /bin/zsho zsh como padrão.


54

Alterno entre zsh e bash com alguma frequência. Por um tempo, eu costumava usar meu bash_profile em todos os switches. Então eu descobri que você pode (normalmente) fazer

exec bash --login

ou apenas

exec bash -l

1
Obrigado phill, eu instalei o thinkbot / laptop e ele bagunçou todas as minhas configurações. Sua dica ajuda a recuperar meu ambiente do bash.
Seralto

1
Seria útil você escrever para que serve "--login"?
Ewoks

Make bash act as if it had been invoked as a login shell (see INVOCATION below). Fonte
lony

16

se é apenas uma mudança temporária

você pode usar exec como mencionado acima, mas para obter uma solução permanente.

você pode usar chsh -s / bin / bash (para alternar para o bash) e chsh -s / bin / zsh (para alternar para o zsh)


12

Para o Bash, tente

chsh -s $(which bash)

Para zsh, tente

chsh -s $(which zsh)

6

O zsh possui um comando interno emulateque pode emular diferentes shells definindo as opções apropriadas, embora o csh nunca seja totalmente emulado.

emulate bash
perform commands
emulate -R zsh

O sinalizador -R restaura todas as opções para seus valores padrão para esse shell.

Consulte: manual do zsh


1
Ainda não está claro que versão do bash ele irá emular, ele simulará o bash 4.x? ou 5.x?
Edgar Aroutiounian

2

Você deve apenas digitar bashno terminal para alternar para o bash e digitar zshpara alternar para zsh. Funciona para mim pelo menos.


Isso é ainda mais simples.
andromeda

2
Isso funciona, mas toda vez que você digita zshou bashentra em um subcasco (subprocesso no shell atual). Você precisará digitar exit várias vezes para retornar ao shell mais superior.
RichVel 15/06/19

1

No Mac OS Catalina, o shell interativo padrão é zsh. Para alterar o shell para zsh do bash:

chsh -s /bin/zsh

Então você precisa digitar sua senha do Mac. Saia do terminal e abra-o novamente. Para verificar se foi alterado com êxito para ssh, emita o seguinte comando.

echo $SHELL

Se o resultado for / bin / zsh, sua tarefa será concluída.

Para voltar ao bash, emita o seguinte comando no terminal.

chsh -s /bin/bash

Verifique novamente usando echo $SHELL. O resultado deve ser / bin / bash.


0

você pode apenas digitar bashou se sempre quiser usar o bash:

no "iTerm2"

  • Vá para preferências> Perfis> Comando
  • Selecione "Comando" no menu suspenso
  • Tipo bash

Teste fechando o iTerm e abra-o novamente


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.