Como alterar o shell padrão para o sistema operacional Linux para Windows


10

Instalei o subsistema Linux para Windows 10. Ele funciona bem, mas quero alterar o ambiente de shell padrão para o subsistema.

Eu fiz sudo apt-get install fishe então chsh -s /usr/bin/fish. Mas quando inicio bash.exeno Windows, ele sempre inicia o bash (acho que é previsível).

Alguém conhece argumentos para mudar esse comportamento?


Quando você inicia, bash.exeobviamente está iniciando explicitamente o bash. Não estou familiarizado com o subsistema Linux no Windows 10, mas esperaria que houvesse alguma maneira de iniciar um shell "Linux" sem iniciar explicitamente um shell específico.
— um CVn

Você tentou uma edição feia do seu bashrc ou bashprofile para redirecionar as chamadas interativas do bash para pescar? Adicionar uma linha como isatty && exec fishpode valer a pena quando você estiver totalmente sem soluções reais.
— A. Loiseau

Respostas:


6

Você não pode alterar o shell padrão em si, pois o subsistema Linux é iniciado por meio do bash.exe, que reside no diretório do sistema.

No entanto, você pode criar um novo atalho como o que já existe para o bash e executar o comando

%systemroot%\system32\bash -c /usr/bin/fish

Dessa forma, você estará executando o peixe imediatamente.


11
Eu costumava %systemroot%\system32\bash.exe ~ -c /bin/zshfazer o ZSH aberto no meu diretório pessoal.
— David Pärsson

Como alternativa, defina o campo "Iniciar em" no atalho %userprofile%para iniciar o shell no seu diretório pessoal.
— dOxxx 29/09/16

@ konqui Isso não quebra nenhum outro shell. É um novo atalho para iniciá-lo. Sua festança vai funcionar muito bem
— Sami Kuhmonen

@SamiKuhmonen não foi dito nada sobre um novo atalho - eu o corrigi agora, posso dar vida a essa resposta.
— Konqui #

9

Desde a Atualização dos criadores de outono, você pode usar chshpara definir o shell padrão. Isso ainda não funciona se você estiver executando o WSL usando o bash.execomando, mas isso funcionará se você estiver executando o WSL com o ubuntu.execomando

Além disso, desde a atualização dos criadores de outono, devemos instalar o sistema operacional WSL da Windows Store .

Defina zshcomo shell padrão:

chsh -s /bin/zsh

em seguida, execute (ou reinicie) ubuntu.exeno prompt de comando.


5

Abra o bash, execute nano ~/.bashrce cole isso em:

if [[ -t 1 && -x /usr/bin/zsh ]]; then
    exec /usr/bin/zsh
fi

Apenas mude o shell para fisho que quiser. A -xverificação é importante se você reinstalar o Bash - você não poderá abri-lo após uma nova instalação porque o execcomando falhará e o Bash será fechado.

Se isso acontecer, exclua / renomeie seu .bashrcarquivo aqui:

C:\Users\<USERNAME>\AppData\Local\lxss\home\<USERNAME>\.bashrc

O -tque eu acredito que verifica se stdout está aberta. Não sei por que isso é importante, copiei deste artigo .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.