Cómo cambiar el shell predeterminado para el subsistema de Linux para Windows

10

He instalado el subsistema Linux para Windows 10. Funciona bien, pero quiero cambiar el entorno de shell predeterminado para el subsistema.

Lo hice sudo apt-get install fishy luego chsh -s /usr/bin/fish. Pero cuando inicio bash.exeen Windows, siempre comienza el bash (creo que es predecible).

¿Alguien sabe argumentos para cambiar este comportamiento?

Envidia
fuente
Cuando comienzas bash.exe, obviamente estás comenzando explícitamente bash. No estoy familiarizado con el subsistema Linux en Windows 10, pero esperaría que haya alguna forma de iniciar un shell "Linux" sin iniciar explícitamente un shell específico.
un CVn
¿Intentó una edición fea de su bashrc o bashprofile para redirigir las llamadas interactivas de bash para pescar? Es isatty && exec fishposible que valga la pena agregar una línea como cuando esté totalmente sin soluciones reales.
A. Loiseau

Respuestas:

6

No puede cambiar el shell predeterminado per se ya que el subsistema Linux se inicia a través de bash.exe que reside en el directorio del sistema.

Sin embargo, puede crear un nuevo acceso directo como el que ya existe para bash y hacer que ejecute el comando

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

De esta manera, correrás peces inmediatamente.

Sami Kuhmonen
fuente
1
Solía %systemroot%\system32\bash.exe ~ -c /bin/zshhacer ZSH abierta en mi directorio personal.
David Pärsson
Alternativamente, configure el campo "Iniciar en" en el acceso directo %userprofile%para iniciar el shell en su directorio de inicio.
dOxxx
@konqui Esto no rompe ningún otro caparazón. Es un nuevo atajo para iniciarlo. Tu fiesta funcionará bien
Sami Kuhmonen
@SamiKuhmonen, no se dijo nada acerca de los nuevos atajos, lo corregí ahora que puedo vivir con esta respuesta.
konqui
9

Desde Fall Creators Update puedes usarlo chshpara configurar el shell predeterminado. Esto todavía no funciona si está ejecutando WSL usando el bash.execomando, pero funciona si está ejecutando WSL con el ubuntu.execomando.

Además, desde Fall Creators Update debemos instalar WSL OS desde la Tienda Windows .

Establecer zshcomo shell predeterminado:

chsh -s /bin/zsh

luego ejecute (o reinicie) ubuntu.exedesde el símbolo del sistema.

Mikhail
fuente
5

Abre bash, ejecuta nano ~/.bashrcy pega esto en:

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

Simplemente cambie el caparazón fisho lo que quiera. La -xcomprobación es importante si alguna vez vuelve a instalar Bash: no podrá abrirlo después de una nueva instalación porque el execcomando fallará y luego Bash simplemente se cierra.

Si eso sucede, elimine / cambie el nombre de su .bashrcarchivo aquí:

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

El -tYo creo comprueba si la salida estándar está abierta. No estoy seguro de por qué eso es importante, lo copié de este artículo .

mpen
fuente