web-dev-qa-db-pt.com

Como faço para definir meu Shell no Mac OS X?

Sei que posso definir "Shells open with" nas preferências do Terminal, mas estou curioso para saber se há alguma maneira de definir isso em todo o sistema (semelhante a atualizar/etc/passwd em alguns Unixes).

21
nall

Use o utilitário chsh assim:

chsh -s bash

A Apple mudou chsh um pouco no Mac OS X em comparação com o chsh que você veria no Linux, por exemplo. Você pode ler sobre eles na chsh Mac OS X Man Page .

24
John T

Observe que você só terá permissão para mudar para um Shell listado em /etc/shells. Isso normalmente é bom, mas significa que se você deseja instalar o Bash 4 (do Homebrew, MacPorts ou compilar o seu próprio), você precisa adicionar uma linha a /etc/shells. (Eu encontrei isso algumas semanas atrás e imaginei que poderia ajudar outros a saber ...)

Editar : Tim Smith aponta que você pode contornar /etc/shells limitação se você executar chsh como root por meio de Sudo. Por exemplo. Sudo chsh -s /usr/local/bin/my_Shell $USER funcionará, mesmo se my_Shell não está listado em /etc/shells. Eu prefiro editar /etc/shells, mas no final, é um uso de Sudo de qualquer maneira, já que você não pode editar /etc/shells como um usuário regular. Então, talvez seis de um, meia dúzia do outro.

19
Telemachus

Para fazer isso usando a GUI do Mac OS X:

  1. Abra “Preferências do Sistema”.
  2. Abra o painel de preferências “Contas”/“Usuários e grupos” e desbloqueie o painel de preferências, se aplicável.
  3. No usuário que você deseja alterar o Shell, control+ clique ou clique com o botão direito no usuário e escolha “Opções Avançadas ...”
  4. Onde diz “Shell de login:” mude para o Shell que deseja usar.

Observe que este local é onde você pode alterar seu diretório inicial, UUID, ID de usuário, ID de grupo e nome abreviado, caso não se sinta confortável com o Terminal. Há uma pergunta semelhante localizada aqui também.

10
Chealion

Usando as respostas acima, recebi uma mensagem de erro:

$ chsh -s zsh
Changing Shell for myuser.
Password for myuser:
chsh: zsh: non-standard Shell

Para contornar isso:

Sudo chsh -s zsh $(whoami)

whoami em um subshell é mudar o Shell para o seu usuário, não o root.

Mais uma coisa se você estiver usando homebrew. Quando você executa comandos como root (usando Sudo), zsh aponta para/bin/zsh, que vem com o OSX e pode estar desatualizado. Para usar o atualizado que é instalado via homebrew, use o seguinte:

Sudo chsh -s $(which zsh) $(whoami)
5
phil pirozhkov