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

Tom
fuente

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:

Florian Diesch
fuente
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.

Shailesh Kalamkar
fuente
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.

Saddam H
fuente
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.

jbp
fuente
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>
Costilla47
fuente
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
John Crawford
fuente
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
0

Escribe en la terminal

sudo chsh -s $(which zsh) root
Valmor Nascimento
fuente