Como alterar o shell padrão no Cygwin?

Como alterar o shell padrão no Cygwin?

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

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

Então, de que outra forma o shell padrão pode ser alterado?

Responder1

A resposta depende de como você inicia o Cygwin.

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

Se você iniciar o Cygwin commentoladoe adicione o shell como parâmetro: mintty /usr/bin/zsh -

Responder2

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

No Windows 7:

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

O resto deve ser autoexplicativo.

Responder3

Copiado deminha resposta no Stack Overflow:


Em vez de criar um arquivo passwd, que o Cygwinrecomenda contra1 , você poderiaedite /etc/nsswitch.conf. Adicione ou edite a seguinte linha:

db_shell: /usr/bin/fish

O lado positivo 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êfazeruse mkpasswd após essa alteração, ele usará seu novo shell padrão para todos os usuários com permissão para fazer logon.


1 A documentação do mkpasswd diz o seguinte:

Não use este comando para gerar um arquivo /etc/passwd local, a menos que você realmente precise de um. Consulte o Guia do usuário do Cygwin para obter mais informações.

Eu realmente não consigo encontrar nenhum raciocínio sólido noGuia do usuário, além de mencionar que você terá que regenerar os arquivos /etc/passwd e /etc/group se seus usuários e grupos mudarem, o que suponho ser um motivo decente. Posso dizer que o processo é um tanto sujeito a erros para iniciantes.

Responder4

Meu serviço de hospedagem, dreamhost.com, possui uma caixa de opção na tela de edição do usuário. Ele pode escolher entre quatro conchas diferentes e se parece com isto

User Type: (Click one of these three buttons) 
  * FTP user - allows login via FTP only.   
  * SFTP user - allows login via SFTP only.
  * Shell user - allows login via both SSH and FTP. 
        Shell Type: ____/usr/bin/tcsh_____  
Disallow FTP?:  ___

informação relacionada