La respuesta correcta debería haber abordado su 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 que estén definidos en el archivo / etc / shells, como puede ver al leer el manual para chsh
:
chsh aceptará la ruta 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, supongo que eso zsh
está en tu camino aquí. Esta solución también funcionará si, por ejemplo, elige instalar la última versión zsh
con brew 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:
$ sudo sh -c "echo $(which zsh) >> /etc/shells"
$ chsh -s $(which zsh)
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?