Estaba probando nuevos entornos de desarrollo, incluidos zsh y oh-my-zsh. Ahora que he instalado oh-my-zsh, comienza de manera predeterminada en mis terminales (iTerm2 y terminal) siempre comienza con zsh y con la configuración activada desde oh-my-zsh. Me preguntaba si era posible "deshabilitar" o dejar de usar zsh y su configuración con oh-my-zsh sin tener que desinstalar oh-my-zsh? También sería bueno saber cómo volver a activarlos.
Actualmente, mis terminales entran en zsh automáticamente (creo) y usan oh-my-zsh automáticamente. Quiero tener más control sobre eso y poder controlar ambos, cuando se usa zsh y cuando se usan las características oh-my-zsh.
Una cosa que también me interesa saber es cómo las aplicaciones de terminal saben qué shell comenzar a ejecutar al inicio. ¡Eso sería bueno poder controlar también!
Si explicas tanto como puedas del "por qué" de cada comando que me das, ¡eso sería útil! :)
Estoy en OS X. No estoy seguro si eso importa, pero tiendo a que me gusten más las respuestas que son más aplicables a entornos Unix más generales que a los míos.
zsh
? ooh-my-zsh
? ¿cuales?Respuestas:
La redacción de su pregunta es ambigua, por lo que no puedo decir si quiere dejar de usarla
zsh
o si quiere dejar de usarlaoh-my-zsh
. Cubriré ambos.Deshabilitar
zsh
Simplemente ejecute
chsh
y seleccione el shell que estaba usando antes. Si no sabes qué shell estabas usando antes, es casi segurobash
. Este comando cambia el "shell de inicio de sesión" que está asociado con su usuario. Básicamente, cambia su shell predeterminado.Deberá abrir una nueva ventana de terminal para que los cambios surtan efecto. Si esto no funciona, deberá cerrar sesión y volver a iniciarla para reiniciar su entorno.
Deshabilitar solo
oh-my-zsh
~/.zshrc.pre-oh-my-zsh
existe. Probablemente lo hace. (Este archivo se habrá creado cuando laoh-my-zsh
secuencia de comandos de instalación eliminó su anterior.zshrc
..zshrc
Es un archivo de iniciozsh
similar a.bashrc
forbash
).mv ~/.zshrc ~/.zshrc.oh-my-zsh
. Esto eliminará eloh-my-zsh
-creado.zshrc
, para que podamos restaurar el original, haciendomv ~/.zshrc.pre-oh-my-zsh ~/.zshrc
.~/.zshrc
en un editor de texto. Encuentre la línea que dicesource $ZSH/.oh-my-zsh
y coméntela o elimínela. Esto deshabilitará la inicialización deoh-my-zsh
.Deberá reiniciar su shell para que los cambios surtan efecto.
fuente
ZSH Config Switching
Si desea probar diferentes marcos de configuración zsh (oh-my-zsh, zprezto, etc) y cambiar entre ellos, la mejor opción es el uso de enlaces simbólicos para
~/.zsh
,~/.zshrc
,~/.zlogin
,~/.zlogout
,~/.zprofile
, y~/.zshenv
. Es posible que desee crear scripts de shell para cada marco para crear esos enlaces simbólicos para un cambio más rápido.Ponga sus configuraciones de framework en sus propias carpetas. Para cada marco.
~/.zsh
, entonces~/.zsh
primero. Ya sea~/.zsh
enlace simbólico;rm ~/.zsh
o~/.zsh
carpeta;mv ~/.zsh ~/.zsh.backup
mv ~/.zsh ~/.oh-my-zsh
.Una vez hecho esto, cree un script de shell para cada marco para crear los enlaces simbólicos necesarios. Aquí hay un ejemplo para zprezto, ya que ya lo uso.
Este script es bastante simple y se basa en el hecho de que todos mis enlaces simbólicos están organizados con el mismo patrón. Puede copiar y pegar la eliminación y crear líneas después del ciclo para los enlaces simbólicos que tiene que no siguen el patrón.
Una vez hecho esto, use
~/bin/use-zprezto
--o - para~/bin/use-whatever
cambiar entre los marcos de zsh.Tenga en cuenta que los cambios solo surten efecto en los nuevos shells zsh, no en los shells existentes.
Conmutación de Shell
Es un poco peligroso, pero si está tan inclinado, puede usar un enlace simbólico para su comando de shell y establecer el enlace simbólico como su shell predeterminado. Luego puede seguir el
use-*
método de script anterior para cambiar su shell predeterminado.Como ejemplo con zsh ...
La razón por la que esto es peligroso es que no puede iniciar sesión con un usuario si el shell almacenado
/etc/passwd
no es un programa válido. Por lo tanto, puede bloquear su cuenta si no tiene cuidado; es decir, su~/.shell
enlace simbólico está roto o no apunta a un programa interactivo. Puede probarlo con una cuenta de usuario, pero NO SE RECOMIENDA para suroot
cuenta.Si aún quieres continuar, entonces
fuente
chsh -s / bin / bash
Para configurar manualmente un nuevo shell predeterminado, haga chsh -s / my / new / shell, por ejemplo, chsh -s / bin / bash. Luego, simplemente vuelva a abrir sus conchas.
fuente
Se puede decir zsh para cargar sus archivos de configuración de cada usuario de un directorio diferente al establecer la variable de entorno
ZDOTDIR
antes de comenzar zsh.Si desea iniciar zsh sin cargar sus archivos de configuración, configúrelo
ZDOTDIR
en un directorio inexistente. Si desea omitir los archivos de configuración del sistema (aparte de/etc/zshenv
), puede ejecutarzsh -f
. Si desea omitir los archivos de configuración del sistema pero ejecuta los archivos por usuario, ejecutezsh -d
.Por ejemplo, si desea probar-conducir oh-my-zsh sin convertirlo en el predeterminado, no coloque
.zshrc
desde oh-my-zsh en su directorio de inicio. En su lugar, póngalo en otro lugar, por ejemplo. adentro~/.oh-my-zsh
, y luego correZDOTDIR=~/.oh-my-zsh zsh
cuando quieras usar oh-my-zsh.Las aplicaciones de terminal ejecutan el shell indicado por la
SHELL
variable de entorno. Si esta variable no está establecida, ejecutan el shell de inicio de sesión indicado en la base de datos del usuario (/etc/passwd
). Puede solicitar una aplicación diferente cuando inicia un emulador de terminal, por ejemploxterm -e fish
.fuente
Como está un poco oculto en @Gilles, responda la forma rápida de cargar zsh sin ninguna configuración, por ejemplo .zshrc .zshenv, etc.
Esto es útil cuando quiere probar si algo en su configuración impide que alguna característica de zsh funcione.
fuente