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.