O aplicativo "Bash on Ubuntu on Windows" sempre inicia, bem, bash. Eu costumava chsh
definir outro shell como meu shell de login. Como faço para que o WSL inicie esse shell?
Responder1
Isso é corrigido emuma versão atualmente apenas para Insider, com o novo wsl.exe
comando:
A partir da compilação 16188, ao executar o bash.exe sem argumentos (ou com o argumento ~), o bash será iniciado como um shell de login. O mesmo se aplica ao novo binário wsl.exe (com a exceção de que wsl inicia o shell padrão do usuário como um shell de login).
Antes disso, você teria que editar o atalho para adicionar parâmetros de linha de comando (como -c 'exec "$SHELL" -l'
):
Responder2
Um pouco de contexto histórico para quem está tentando adicionar uma nova resposta hoje em dia. Esta pergunta foi feita originalmente na era das trevas do início da WSL. Naquela época:
- Ubuntu/WSL era conhecido como "Bash no Ubuntu no Windows"
- Foi lançado através do
bash.exe
comando - Istosemprelançou o shell Bash
O bash.exe
comando foi obsoleto há algum tempo e substituído pelo wsl.exe
comando que @muru mencionou emesta resposta.
Agora, você pode alterar seu shell padrão/de login para Fish (ou normalmente qualquer outro shell) usando os métodos padrão do Ubuntu mencionados, por exemplo, emesta resposta. Resumidamente:
- Certifique-se de que o shell esteja representado em seu
/etc/shells
chsh -s <path_to_shell>
- Ou normalmente,
chsh -d $(which fish)
Responder3
Para iniciar, por exemplo, pescar no Ubuntu no WSL, defina sua meta como
C:\Windows\system32\wsl.exe --distribution Ubuntu --exec fish