Instalé ZSH en mi MAC. y ahora quiero que sea el Shell predeterminado en lugar de BASH. Pero parece que estoy corriendo en el siguiente error
Harshas-MacBook-Pro:~ harshamv$ echo $Shell
/bin/bash
Harshas-MacBook-Pro:~ harshamv$ chsh -s /usr/bin/zsh
Changing Shell for harshamv.
Password for harshamv:
chsh: /usr/bin/zsh: non-standard Shell
which zsh
this te da tu camino a zshchsh -s /bin/zsh
o reemplace la ruta a su zsh si es diferenteLa respuesta correcta debería haber solucionado tu problema:
chsh:/usr/bin/zsh: Shell no estándar
La razón por la que este es el caso es porque chsh
solo aceptará shells definidos en el archivo/etc/shells, como puede ver al leer el manual de chsh
:
chsh aceptará la ruta de acceso completa de cualquier archivo ejecutable en el sistema. Sin embargo, emitirá una advertencia si el Shell no aparece en el archivo/etc/shells.
Para resolver este problema y hacer que zsh sea el Shell predeterminado, debe:
$ Sudo echo "$(which zsh)" >> /etc/shells
$ chsh -s $(which zsh)
Obviamente, asumo que zsh
está en tu camino aquí. Esta solución también funcionará si, por ejemplo, elige instalar la última zsh
con brew install zsh
.
EDIT((gracias por ThisIsFlorianK por el comentario):
Dependiendo de la configuración de su Shell, puede recibir un mensaje que dice /etc/shells: Permission denied
. Puede encontrar información sobre este tema aquí. Para evitarlo, usa lo siguiente:
$ Sudo sh -c "echo $(which zsh) >> /etc/shells"
$ chsh -s $(which zsh)
Pude hacer que esto funcionara haciendo lo siguiente:
echo $Shell
En mi trabajo MacBook tuve que hacer esto:
Sudo chsh -s /usr/local/bin/zsh my_user_name
Luego tuve que crear un archivo .bash_profile
para hacer que mi terminal cambie a z-Shell cada vez que lo abro:
touch ~/.bash_profile
echo 'export Shell=$(which zsh)' >> ~/.bash_profile
echo 'exec $(which zsh) -l' >> ~/.bash_profile
La última idea fue prestada desde aquí .