¿Cómo hacer que ZSH sea el shell predeterminado?


124

Estoy tratando de configurar ZSH como mi shell predeterminado, sin embargo, sigue volviendo a bash.

He intentado este código:

sudo chsh -s $(which zsh)

También he intentado:

sudo chsh -s /bin/zsh 

También probé estos comandos sin sudo. Alguna idea sobre qué más necesito hacer. Cuando ejecuta ZSH desde bash, se carga y funciona bien, pero me gustaría configurarlo como el shell predeterminado.

Respuestas:


217

Solo usando chsh:

chsh -s $(which zsh)

sin sudo debería funcionar. Si lo usa sudo, cambiará el shell no para su usuario activo sino para el usuario root

Finalmente, cierre la sesión de su computadora y vuelva a iniciarla .

Solución de problemas:


17
Tengo el mismo problema y la respuesta no lo resuelve
— Aswin Murugesh

@AswinMurugesh Comprueba mi respuesta
— Shailesh Kalamkar

99
también puede ejecutar sudo chsh -s / bin / zsh userName
— Micha Roon

16
Nota: tuve que reiniciar mi sistema antes de que esto surta efecto.
— KevinO

No, no funcionó.
— Haha TTpro

40

Encontré esto en el foro de superusuario

Abra / etc / passwd:

sudo vi /etc/passwd

Encuentra la línea con tu nombre de usuario:

username:x:1634231:100:Your Name:/home/username:/bin/bash

y reemplace bash con zsh:

username:x:1634231:100:Your Name:/home/username:/bin/zsh

Cierre sesión y vuelva a iniciar sesión para que los cambios surtan efecto.


11
Debes tener mucho cuidado con este enfoque: no suele ser la mejor idea ir con tonterías/etc/passwd
— Thomas Ward

Aunque no chsh -s `which zsh`
— utilicé

HA Sí, este total jodió a mi usuario. No puedo volver a iniciar sesión.
— Mark Carpenter Jr

6

También puedes hacer esto:

abre tu archivo bashrc en tu editor favorito

sudo nano ~/.bashrc

luego agregue la línea debajo de la parte superior del archivo

exec zsh

Ejecutará el comando cada vez que cargue el terminal y ejecute su shell zsh.


13
y también interrumpirá todos sus trabajos no interactivos ( scppor ejemplo).
— Jakuje

Perdón por el voto negativo, pero cambiar /etc/passwdo chshson mejores soluciones y más confiables.
— Timo

Gracias por hacerlo. @Timo Hice el cambio en / etc / passwd y / o chsh pero mi valor predeterminado seguía volviendo a bash. Agregué exec zsh según la respuesta publicada y funcionó.
— Stryker

3

Si zsh no es / bin / zsh, entonces chsh no funcionará. En Ubuntu es / usr / bin / zsh. haciendo chsh -s /usr/bin/zsho chsh -s `which zsh`debería funcionar. También es necesario volver a iniciar sesión en la sesión de escritorio.


En mi Ubuntu VPS es / bin / zsh
— Wilhelm Erasmus

En mi Ubuntu, lo veo en ambos /bin/zshy/usr/bin/zsh
— blue_chip

2
En el mío (14.04, con zsh del repositorio principal), hay dos zsh, y ambos son enlaces simbólicos de dos capas: / usr / bin / zsh -> / etc / Alternatives / zsh-usrbin -> / bin / zsh5 y / bin / zsh -> / etc / alternative / zsh -> / bin / zsh5
— wjandrea

1

Tuve un problema con los permisos para cambiar el shell bajo el usuario actual, pero luego me ayuda (debe configurar la carpeta 'zsh' correcta para su computadora):

sudo chsh -s /bin/zsh <myUserName>

0

Extraño, la respuesta "aceptada" no funcionó para mí cuando la recibí

chsh: PAM: Authentication failure

Para resolver este problema, edite su / etc / passwd y asegúrese de que apunte a la ubicación zsh. (Puede encontrar esto ejecutando "which zsh") En mi caso, mi usuario llamado "webmaster" se veía así:

webmaster:x:1001:1001:webmaster,,,:/var/www/webmaster:/usr/bin/zsh

Creo que se supone que debe pedir una contraseña. Recibí el mismo error en mi instalación anterior de mint. Sin embargo
— Wilhelm Erasmus el

Alguien más tuvo el mismo problema, y ​​resultó que habían corrido chsh -s zsh, lo que hizo que su entrada passwd fuera incorrecta.
— wjandrea

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.