Estou tentando mudar 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?
sh.exe
parazsh.exe
em Configurações do Conemu> inicialização> tarefas> bash Cygwin Bash>set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\sh.exe --login -i
CygWin\bin\zsh.exe
.sh.exe --login
vai lançar o Bash, como você muda isso? Ou isso não importa, afinal? Eu imaginosh.exe --login
é desnecessariamente execuçãosh
anteszsh
...set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\zsh.exe --login -i
hthsh.exe
. Agora eu percebo que eu simplesmente não ler a sua mensagem corretamente :-)-l
:mintty.exe -i /Cygwin-Terminal.ico /usr/bin/zsh -l -
Se você executar
mintty.exe
diretamente ou executar o Cygwin Terminal no menu Iniciar ou na á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:
O resto deve ser auto-explicativo.
fonte
Copiado da minha resposta no Stack Overflow :
Em vez de criar um arquivo passwd, recomendado pelo Cygwin contra 1 , você pode editar o arquivo /etc/nsswitch.conf . Adicione ou edite a seguinte linha:
O lado negativo / negativo desse método é que, se você tiver vários usuários, essa alteração afetará todos eles. O lado positivo / negativo é que é simples demais. O único problema é que você precisa reiniciar o Cygwin.
Se você fazer uso mkpasswd após essa mudança, ele usará o seu novo shell padrão para todos os usuários que têm permissão para fazer logon.
1 A documentação do mkpasswd diz o seguinte:
Eu realmente não consigo encontrar nenhum raciocínio sólido no guia do usuário , exceto uma menção de que você precisará gerar novamente os arquivos / etc / passwd e / etc / group se seus usuários e grupos mudarem, o que eu acho que é bastante decente razão. Posso dizer que o processo é um pouco propenso a erros para iniciantes.
fonte
Este é um truque: coloque isso como a primeira linha do seu
~/.bash_profile
:fonte