¿Cambiar de zsh a bash en OSX y volver de nuevo?

194

Así que estoy aprendiendo a desarrollarme en Rails y he descubierto el poder de zsh. Sin embargo, para algunas de mis otras tareas, deseo usar Bash normal. Aunque son lo mismo, me siento cómodo con la disposición de bash en algunas situaciones. ¿Cómo puedo cambiar de un lado a otro o activar y desactivar zsh? ¡Gracias!

vpoola88
fuente

Respuestas:

382

Simplemente puede usar execpara reemplazar su shell actual con un nuevo shell:

Cambiar a bash:

exec bash

Cambiar a zsh:

exec zsh

Esto no afectará a las nuevas ventanas de terminal ni nada, pero es conveniente.

larsks
fuente
1
¡De nada! Si está satisfecho con esta respuesta, tómese un momento para marcarla como aceptada marcando la marca de verificación a la izquierda de la respuesta. ¡Gracias!
larsks
1
O simplemente invoque zsh y, cuando haya terminado, exitvuelva a bash. Ejecutarlo parece innecesario e indeseable.
Chris Page
Todo depende de lo que espere que haga su ventana de terminal cuando salga. Me parece que iniciar un subshell es innecesario e indeseable.
larsks
2
¿Cómo se cambia el valor predeterminado? Además, cuando hago "exec bash" en zsh, no genera mi bash_profile.
kalehv
1
Hay momentos en que quiero usar zsh y otros cuando interfiere con lo que quiero hacer. ¡Establecer el valor predeterminado de ida y vuelta es una mala idea, así que esta es la solución perfecta! ¡¡prestigio!!
Bob Roberts el
126

puede intentar chsh -s /bin/bashestablecer el bash como predeterminado o chsh -s /bin/zshestablecer el zsh como predeterminado.

wanghao
fuente
54

Cambio entre zsh y bash con cierta frecuencia. Por un tiempo, solía tener que buscar mi bash_profile en cada switch. Entonces descubrí que puedes (típicamente) hacer

exec bash --login

o solo

exec bash -l
phil-ociraptor
fuente
1
Gracias, instalé thoughtbot / laptop y desordenó todas mis configuraciones. Tu sugerencia ayuda a recuperar mi entorno de bash.
Seralto
1
¿Sería útil que escribieras para qué sirve "--login"?
Ewoks el
Make bash act as if it had been invoked as a login shell (see INVOCATION below). Fuente
lony
16

si es solo un cambio temporal

puede usar exec como se mencionó anteriormente, pero para una solución más permanente.

puede usar chsh -s / bin / bash (para cambiar a bash) y chsh -s / bin / zsh (para cambiar a zsh)

Rahil
fuente
12

Para Bash, prueba

chsh -s $(which bash)

Para zsh, intente

chsh -s $(which zsh)
como si
fuente
6

zsh tiene un comando incorporado emulateque puede emular diferentes shells configurando las opciones apropiadas, aunque csh nunca se emulará por completo.

emulate bash
perform commands
emulate -R zsh

El indicador -R restaura todas las opciones a sus valores predeterminados para ese shell.

Ver: manual de zsh

ljcusack
fuente
1
Aunque no está claro qué versión de bash emulará, ¿emulará bash 4.x? o 5.x?
Edgar Aroutiounian
2

Debería poder simplemente escribir bashen el terminal para cambiar a bash, y luego escribir zshpara cambiar a zsh. Funciona para mí al menos.

Paul Jurczyk
fuente
Esto es aún más simple.
andromeda
2
Esto funciona, pero cada vez que escribe zsho bashingresa a un sub-shell (subproceso en el shell actual). Tendrá que escribir exit varias veces para volver al shell superior.
RichVel
1

En Mac OS Catalina, el shell interactivo predeterminado es zsh. Para cambiar shell a zsh de bash:

chsh -s /bin/zsh

Luego debe ingresar su contraseña de Mac. Salga del terminal y vuelva a abrirlo. Para verificar si se ha cambiado correctamente a ssh, emita el siguiente comando.

echo $SHELL

Si el resultado es / bin / zsh, su tarea está completa.

Para volver a cambiarlo a bash, emita el siguiente comando en la terminal.

chsh -s /bin/bash

Verifíquelo nuevamente usando echo $SHELL. Entonces el resultado debería ser / bin / bash.

Randil Tennakoon
fuente
0

puedes escribir basho si siempre quieres usar bash:

en "iTerm2"

  • Vaya a preferencias> Perfiles> Comando
  • Seleccione "Comando" en el menú desplegable
  • Tipo bash

Pruebe cerrando iTerm y ábralo nuevamente

Sarah A
fuente
-5

Puede volver fácilmente a bash usando el comando "bye"

Rajani
fuente
bye saldrá de zsh pero no volverá a bash
Cece Dong - MSFT