Como alterar o shell padrão no Cygwin?

27

Estou tentando alterar meu shell padrão do bash para o zsh no cygwin.

  1. O comando unix normal chsh não está disponível no cygwin
  2. O arquivo etc / passwd que parece não é mais usado nas versões existentes do cygwin.

Então, como mais o shell padrão pode ser alterado?

    
por gyaani_guy 14.07.2015 / 18:10

4 respostas

22

A resposta depende de como você inicia o Cygwin.

Se você iniciar o Cygwin com Cygwin.bat , modifique a última linha de /Cygwin.bat (geralmente C:\cygwin\ ou C:\cygwin64\ ).

Se você iniciar o Cygwin com mintty , adicione o shell como um parâmetro. mintty /usr/bin/zsh -

    
por 14.07.2015 / 19:07
16

Se você executar mintty.exe diretamente ou executar o Cygwin Terminal a partir do menu Iniciar ou da área de trabalho (que é um atalho para mintty.exe), você pode definir a variável de ambiente SHELL no Windows como /usr/bin/zsh .

No Windows 7:

  1. Pressione a tecla do Windows.
  2. Comece a digitar "ambiente".
  3. Quando aparecer, selecione "Editar variáveis de ambiente para sua conta".

O resto deve ser autoexplicativo.

    
por 13.10.2016 / 22:51
14

Copiado de minha resposta no estouro de pilha :

Em vez de criar um arquivo passwd, que o Cygwin recomenda contra 1 , você pode editar /etc/nsswitch.conf . Adicione ou edite a seguinte linha:

db_shell: /usr/bin/fish

O lado inferior / superior desse método é que, se você tiver vários usuários, essa alteração afetará todos eles. O lado positivo é que é muito simples. O único problema é que você precisa reiniciar o Cygwin.

Se você fizer usar o mkpasswd após essa mudança, ele usará o novo shell padrão para todos os usuários com permissão para fazer logon.

1 A documentação do mkpasswd diz isso:

Don't use this command to generate a local /etc/passwd file, unless you really need one. See the Cygwin User's Guide for more information.

Não consigo encontrar nenhum raciocínio sólido no guia do usuário , além de uma menção de que você terá que regenerar os arquivos / etc / passwd e / etc / group se seus usuários e grupos mudarem, o que eu suponho ser uma razão decente o suficiente. Eu posso dizer que o processo é um pouco propenso a erros para iniciantes.

    
por 14.06.2016 / 16:43
5

Isso é um hack: coloque isso como a primeira linha do seu ~/.bash_profile :

exec zsh
    
por 14.07.2015 / 18:15