Quando o zsh é definido como um shell de login no Mac OS X, quando é iniciado pelo iTerm, o zsh não considera que está sendo executado como um shell de login, embora tenha sido iniciado como '-zsh' ('-' é colocado como primeiro caractere de arg [0]), o que significa que ele deve iniciar como um shell de login.
Portanto, quando defino o shell de login como bash, o bash reconhece esse primeiro '-' em $ 0 e é executado como um shell de login, mas o zsh não, embora pareça que deveria.
Existe uma maneira de fazer o zsh reconhecer o '-' no arg [0] ou fazer o iTerm executar o shell com um argumento de linha de comando --login?
Respostas:
No iTerm -> Preferências -> Guia Perfis -> Seção Geral defina Comando como: / bin / zsh --login
fonte
/usr/local/bin/zsh --login
Você será solicitado a fornecer sua senha, mas depois de atualizar suas configurações, todas as novas sessões do iTerm / Terminal iniciadas nessa máquina serão padronizadas para zsh.
fonte
chsh
lhe diz algo como "shell fora do padrão", significa que você precisa adicionar o caminho do novo shell/etc/shells
. Isso pode acontecer se você estiver mudando, por exemplo, para uma versão do zsh instalada pelo homebrew, que a coloca/usr/local/bin/zsh
.chsh -s $(which zsh)
pode ser usado para garantir o caminho correto.Vá para o painel Usuários e grupos das Preferências do sistema -> selecione o usuário -> clique no cadeado para fazer alterações (canto inferior esquerdo) -> clique com o botão direito do mouse no usuário atual, selecione Opções avançadas ... -> selecione o Shell de logon: / bin / zsh e OK
fonte
O comando para alterar o shell na inicialização é
chsh -s <path_to_shell>
. Os shells padrão no mac OS X são instalados dentro dobin
diretório, portanto, se você deseja alterar para o padrãozsh
, use o seguinteSe você estiver usando uma versão diferente
zsh
, poderá ser necessário adicionar essa versão/etc/shells
para evitar a mensagem shell não padrão. Por exemplo, se você deseja a versão do home-brew,zsh
é necessário adicionar/usr/local/bin/zsh
ao arquivo mencionado anteriormente, o que você podesudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells"
executar em um comando e executarOu se você quiser fazer a coisa toda em um comando, basta copiar e colar isso se você já tiver o zsh instalado
fonte
/etc/shells
no corpo da resposta em si.Você já tentou editar a entrada do shell nas configurações da conta .
Vá para as preferências de Contas, desbloqueie e clique com o botão direito na sua conta de usuário para a caixa de diálogo Configurações avançadas . Seu shell deve ser / bin / zsh e você pode editar essa chamada adequadamente (por exemplo, adicione o argumento --login).
fonte
Use o
login
utilitário para criar um shell de logon. Suponha que o usuário no qual você deseja efetuar login tenha o nome de usuário Alice e que o zsh esteja instalado/opt/local/bin/zsh
(por exemplo, uma versão mais recente instalada via MacPorts). No iTerm 2, vá para Preferências, Perfis, selecione o perfil que deseja configurar e digite Comando :Veja
man login
para mais detalhes sobre as opções.fonte