Instalé zsh en mi Mac. y ahora quiero convertirlo en el shell predeterminado en lugar de Bash. Pero parece que me estoy encontrando con el siguiente error:
$ echo $SHELL
/bin/bash
$ chsh -s /usr/bin/zsh
Changing shell for harshamv.
Password for harshamv:
chsh: /usr/bin/zsh: non-standard shell
chsh -l
salida? (Si eso no funciona, ¿cuál es el contenido/etc/shells
?) ¿Está seguro de que esto está fallando y no solo una advertencia? ¿Agregar/usr/bin/zsh
allí hace que esto funcione?/bin/zsh
?Respuestas:
3 sencillos pasos:
which zsh
esto te da tu camino a zshchsh -s /bin/zsh
o reemplace la ruta a su zsh si es diferentefuente
/usr/bin/zsh
para/etc/shells
resuelve el problema.La respuesta correcta debería haber abordado su problema:
La razón por la que este es el caso es porque
chsh
solo aceptará shells que estén definidos en el archivo / etc / shells, como puede ver al leer el manual parachsh
:Para resolver este problema y hacer que zsh sea el shell predeterminado, debe:
Obviamente, supongo que eso
zsh
está en tu camino aquí. Esta solución también funcionará si, por ejemplo, elige instalar la última versiónzsh
conbrew install zsh
.EDITAR (gracias por ThisIsFlorianK por el comentario) :
Dependiendo de la configuración de su shell, puede recibir un mensaje que diga
/etc/shells: Permission denied
. Puede encontrar información sobre este problema aquí. Para solucionarlo, utilice lo siguiente en su lugar:fuente
/etc/shells: Permission denied
==> Haga eso en su lugar:sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh
está disponible por defecto por una razón. Aunque no hay nada intrínsecamente malo en hacer clic en un montón de menús para lograr lo mismo, eso no solo es intransitable y propenso a errores, sino que también es engañoso porque oculta a los usuarios de donde proviene el cambio.Pude hacer que esto funcionara haciendo lo siguiente:
echo $SHELL
fuente
/usr/local/bin/zsh
. Por lo tanto, deberá editar/etc/shells
en sudo y agregar una entrada para/usr/local/bin/zsh
antes de poder seleccionar el ejecutable zsh que instaló hombrewEn mi MacBook de trabajo tuve que hacer esto:
Luego tuve que crear un
.bash_profile
archivo para que mi terminal cambiara a z-shell cada vez que lo abría:La última idea fue tomada de aquí .
fuente