¿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!

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.


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.


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

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)


12

Para Bash, prueba

chsh -s $(which bash)

Para zsh, intente

chsh -s $(which zsh)

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


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.


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.


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


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.