web-dev-qa-db-esp.com

Haciendo ZSH shell predeterminado en MacOSX

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
65
Harsha M V

3 sencillos pasos:

  1. which zshthis te da tu camino a zsh
  2. Luego, chsh -s /bin/zsh o reemplace la ruta a su zsh si es diferente
  3. Reinicie su máquina
68
Quentin Perez

La 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)
121
dangom

Pude hacer que esto funcionara haciendo lo siguiente:

  1. Ir a Preferencias del sistema
  2. Haga clic en "Usuarios y grupos"
  3. Haga clic en el bloqueo para realizar cambios.
  4. Haga clic derecho en el usuario actual -> Opciones avanzadas
  5. Cambie el Shell de inicio de sesión a/bin/zsh en el menú desplegable.
  6. Abre una nueva terminal y verifica con echo $Shell
37
njenson

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í .

5
sakovias