Usar o zsh como o shell padrão no Mac

Desde o macOS Catalina, o Mac usa o zsh como shell de início de sessão padrão e shell interativo. Você pode tornar o zsh o padrão nas versões anteriores do macOS também.

Por padrão, o Mac usa o zsh ou bash como o interpretador de linha de comando para o shell de início de sessão e shell interativo:

  • O zsh (Z shell) é o shell padrão para todas as contas de usuários recém-criadas, desde o macOS Catalina.
  • bash é o shell padrão no macOS Mojave e anterior.

O zsh é altamente compatível com o Bourne shell (sh) e é compatível principalmente com o bash, com algumas diferenças. Para obter mais informações sobre o zsh e seu completo sistema de conclusão de linha de comando, insira man zsh no Terminal.
  

Como alterar o shell padrão

Se a conta de usuário estiver configurada para usar o zsh (recomendado), bash ou outro shell, você poderá alterar o shell padrão nas preferências "Usuários e Grupos" ou na linha de comando.

Nas preferências "Usuários e Grupos"

  1. Selecione o menu Apple () > Preferências do Sistema e clique em "Usuários e Grupos". 
  2. Clique no cadeado  e insira o nome e a senha da conta.
  3. Clique com a tecla Control pressionada em seu nome de usuário na lista de usuários à esquerda e selecione Opções Avançadas. 
  4. Selecione um shell no menu "Shell de início de sessão" e clique em OK para salvar as alterações.

Na linha de comando

No Terminal, insira $ chsh -s path, em que path é um dos caminhos de shell indicados em /etc/shells, como /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh ou /bin/tcsh.
  

Como usar um shell diferente sem alterar o padrão

Se você não quiser que o Terminal use o shell de início de sessão padrão em novas janelas e abas do Terminal:

  1. Abra o Terminal e selecione Terminal > Preferências.
  2. No painel Geral, selecione "Comando (caminho completo)". 
  3. No campo fornecido, insira um dos caminhos de shell indicados em /etc/shells, como /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh ou /bin/tcsh.

Se você acionar o bash shell e o macOS Catalina estiver configurado para usar um shell diferente, aparecerá uma mensagem informando que o shell interativo padrão agora é zsh. Para silenciar esse aviso, você pode adicionar este comando a ~/.bash_profile ou ~/.profile:

export BASH_SILENCE_DEPRECATION_WARNING=1


Como alternar para um perfil zsh e prompt

Se estiver usando um perfil bash como o perfil para definir variáveis do ambiente, aliases ou variáveis do caminho, você deverá alternar para usar um perfil equivalente ao zsh. Por exemplo:

  • .zprofile é equivalente a .bash_profile e é executado no início de sessão, inclusive sobre o SSH
  • .zshrc é equivalente a .bashrc e é executado para cada nova sessão do Terminal

Se estiver usando o .profile (um perfil compatível com POSIX), você poderá fazer com que o zsh leia automaticamente os ajustes do perfil adicionando este comando ao .zprofile:

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

Você também pode mover alguns ajustes de um perfil bash para um perfil zsh sem modificação. Por exemplo, para definir variáveis do ambiente: exporte MY_SETTING=1.

O zsh reconhece um conjunto diferente de especificadores de prompt do que o bash e tem uma sintaxe mais limpa para especificar saídas coloridas, eliminando a necessidade de usar sequências de escape ANSI complexas. Por exemplo, aqui está a sintaxe para um prompt bash padrão de .bash_profile:

export PS1="\[\e[92;40m\]\h\[\e[m\]:\[\e[93m\]\W\[\e[m\] \\$ "

Para converter esse prompt bash em um prompt zsh ao usar .zprofile ou .zshrc:

export PS1="%10F%m%f:%11F%1~%f \$ "

Veja a página inicial do zsh para obter mais informações.


Como testar os scripts de shell

Para testar a compatibilidade de scripts com shells compatíveis com Bourne no macOS Catalina, você pode alterar /var/select/sh para /bin/bash, /bin/dash ou /bin/zsh. Se você alterar /var/select/sh para um shell diferente de bash, esteja ciente de que os scripts que fazem uso de bashisms podem não funcionar corretamente.

Você pode fazer o zsh emular o sh executando o comando zsh --emulate sh.
  

As informações sobre produtos não fabricados pela Apple, ou sites independentes não controlados nem testados pela Apple, são fornecidas sem recomendação ou endosso. A Apple não assume responsabilidade alguma com relação à escolha, ao desempenho ou ao uso de sites ou produtos de terceiros. A Apple não garante a precisão nem a confiabilidade de sites de terceiros. Entre em contato com o fornecedor para obter mais informações.

Data da publicação: