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