
Estou tentando alterar meu shell padrão de bash para zsh no cygwin.
- O comando unix normal
chsh
não está disponível no cygwin - 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.exe
diretamente 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:
- Pressione a tecla Windows.
- Comece a digitar "ambiente".
- 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?: ___