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 -lsalida? (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/zshallí hace que esto funcione?/bin/zsh?Respuestas:
3 sencillos pasos:
which zshesto te da tu camino a zshchsh -s /bin/zsho reemplace la ruta a su zsh si es diferentefuente
/usr/bin/zshpara/etc/shellsresuelve el problema.La respuesta correcta debería haber abordado su problema:
La razón por la que este es el caso es porque
chshsolo 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
zshestá en tu camino aquí. Esta solución también funcionará si, por ejemplo, elige instalar la última versiónzshconbrew 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"chshestá 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 $SHELLfuente
/usr/local/bin/zsh. Por lo tanto, deberá editar/etc/shellsen sudo y agregar una entrada para/usr/local/bin/zshantes de poder seleccionar el ejecutable zsh que instaló hombrewEn mi MacBook de trabajo tuve que hacer esto:
Luego tuve que crear un
.bash_profilearchivo para que mi terminal cambiara a z-shell cada vez que lo abría:La última idea fue tomada de aquí .
fuente