Como alterar o Shell de Login no Mac OS X de bash para zsh?

90

Estou tentando alterar o Shell de Login do Mac OS X de bashpara zsh. Eu vejo que é possível no Mac OS X Leopard , mas para o OS X Lion não consigo encontrar uma maneira. Eu realmente espero que seja possível alterar o shell de Login do bash para outra coisa. Não sei exatamente onde procurar.

Idlecool
fonte
Depois de mudar o shell para zsh, eu ainda tinha que iniciar o zsh manualmente. Sair não ajudou. Eu então mudei o zsh para o shell de login mais alto. Desconectado e lá estava.
1
Se nada mais, você sempre pode modificar o .bashrc para encontrar e executar o zsh. if [ -x /usr/local/bin/zsh ] ; then exec /usr/local/bin/zsh fi. Dica, ao modificar os scripts de inicialização do shell, mantenha um shell em execução e inicie um novo em outra janela - se você o quebrar, você ainda terá um lugar fácil para corrigi-lo.
Dan Pritts

Respostas:

101

Você pode alterar o shell do usuário pelo seguinte comando:

chsh -s /bin/zsh

Nota: Para alterá-lo para um shell não padrão, verifique se o caminho foi adicionado ao /etc/shellsarquivo.

Spiff
fonte
4
Instalei uma versão mais recente do zsh com o Homebrew, que colocou o zsh /usr/local/bin/zsh. Infelizmente, o chsh não permite isso, dizendo chsh: /usr/local/bin/zsh: non-standard shell. A resposta de Daniel Beck é uma solução adequada neste caso.
adam_0
43
Se você está recebendo problemas com conchas não-padrão, eu acho que você deve ser capaz de adicionar /usr/local/bin/zshao /etc/shellse deve resolver esse problema.
Mike Meyers
13
As informações de instalação do homebrew zsh na verdade recomendam que você as adicione ao / etc / shells: ==> Caveats To use this build of Zsh as your login shell, add it to /etc/shells.
George
Às vezes não funciona. resposta de @ frank garante embora
oliverbarnes
1
@Awesome_girl Por padrão, /etc/shellsé de propriedade e somente pode ser gravada por root (o superusuário). Você poderia, por exemplo, usar sudo vi /etc/shellsde usar sudo( s uper u Ser não ) para executar o vieditor para editar /etc/shells. Acabei de testar no meu sistema e confirmei que NÃO é protegido pela Proteção de integridade do sistema, portanto, você poderá editá-lo como root sem passar por aros para desativar o SIP.
Spiff
54

Curiosamente, o mesmo método ao qual você vincula sua pergunta ainda funciona no OS X Lion através do Sierra (10.12). A única diferença: o painel de preferências é denominado Usuários e Grupos, em vez de Contas .

  1. Abra "Preferências do sistema" → "Usuários e grupos".
  2. A menos que o ícone de cadeado já esteja desbloqueado, clique no ícone de cadeado e se autentique.
  3. Clique com o contexto em um usuário na lista de nomes de usuário (mantenha pressionada a Controltecla enquanto clica ou clique com o botão direito do mouse com o botão direito do mouse com dois botões).
  4. No menu de contexto, escolha "Opções avançadas ...".
  5. Escolha "Shell de login" na planilha exibida.

A nota na parte superior da tela "Opções avançadas" afirma que você precisa reiniciar para que a alteração entre em vigor, mas você realmente só precisa fazer logout e logon novamente.

insira a descrição da imagem aqui

Daniel Beck
fonte
1
Confirmou que isso funciona no Mountain Lion, além de trabalhar com "invólucros fora do padrão" que você pode instalar por conta própria (ou instalar o Homebrew).
adam_0
2
Confirmado ainda trabalhando em 10.10 Yosemite.
ecnepsnai
4
clique com o botão direito do mouse no nome de usuário para exibir o menu que contém "opções avançadas". Demorei alguns minutos para encontrar.
Pdwalker
1
Por que forçar alguém a sair do local para reunir todas as informações antes de poder responder? Daí o comentário, caso alguém faça a mesma suposição de que a resposta está aqui e não aqui e ali.
Pdwalker
1
@jvriesem Na verdade, ele faz. Meu palpite é que você pulou a etapa 2.
Daniel Beck
11

Ou:

sudo dscl . change /users/$USER UserShell /bin/bash $(which zsh)
sincero
fonte
3
Você pode explicar por que isso responde à pergunta?
ChrisF
Certifique-se de executar isso depois brew install zsh .
11134 mmell
3
Além disso, tenha cuidado para que o caminho do zsh instalado via homebrew seja diferente. Eu faço assim:sudo dscl . change /users/$USER UserShell /bin/bash $(which zsh)
metakermit 25/03
1
AVISO: Isso quebrará seu shell se você o copiar / colar sem verificar primeiro o caminho do zsh. Faça o que metakermit disse em seu lugar.
Radixhound #
1

Se alguém perguntando o mesmo problema acontece no macOS Sierra e o comando a seguir me permitiu alterar o shell sem problemas:

chpass -s /usr/local/bin/zsh
Maxim Ligus
fonte
1
Isso duplica outra resposta e não adiciona novo conteúdo. Não poste uma resposta, a menos que você realmente tenha algo novo para contribuir. "chfn e chsh são sinônimos para chpass."
DavidPostill