¿Cómo cambio mi shell predeterminado en una instancia de AWS?

121

Quiero cambiar mi shell del bash shell predeterminado a zsh en mis instancias de Amazon EC2. ¿Cómo hago para hacerlo? ¡Gracias!

Shripad Krishna
fuente

Respuestas:

159

Intenta usar el chshcomando.

p.ej

chsh -s / bin / zsh

Puede confirmar la ubicación de zsh ejecutando whereis zsh, o simplemente ejecutando

chsh -s $ (que zsh)

Si desea cambiar el shell de una cuenta de usuario distinta de la que ha iniciado sesión, deberá ejecutarlo como root, por lo que para cambiar el shell de john, haga lo siguiente:

sudo chsh -s $ (que zsh) john

Tenga en cuenta que deberá cerrar sesión y volver a iniciarla para que el cambio surta efecto. Si está utilizando Gnome o algún otro administrador de ventanas, también deberá cerrar sesión por completo en esa sesión; simplemente cerrar y abrir su terminal es insuficiente.

John T
fuente
¡Intenté eso, pero con el usuario root! Mi imagen AMI tiene ubuntu en lugar de root. ¡Tuve que cambiar al usuario de ubuntu para cambiar el shell! Gracias por la pista :)
Shripad Krishna
3
@ Paddy si eres root, puedes cambiarlo para otro usuario ejecutando chsh -s /bin/zsh username.
John T
Impresionante :) Mucho más fácil. Gracias por esa información también.
Shripad Krishna
3
@We are the World: debe agregar / usr / local / bin / zsh como una nueva línea a / etc / shells
Nate Parsons
55
Yo uso una versión ligeramente diferentesudo chsh -s $(which zsh) $(whoami)
SergioAraujo
20

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.

Georgii Oleinikov
fuente
66
Es mejor usarlo chsh, pero si realmente va a editar /etc/passwda mano, al menos use el vipwcomando.
Valmiky Arquissandas
No tengo chsh en mi máquina. Además, por alguna extraña razón, mi archivo / etc / passwd se sobrescribe regularmente por el predeterminado. ¿Sabes por qué esto podría estar sucediendo?
Georgii Oleinikov
No toque / etc / passwd. ¡Hay mejores formas de hacer esto que no requieren jugar con la herramienta passwd!
Andrew
6

Vine aquí para agregar más información adicional. Si tiene problemas al instalar zsh en Amazon Linux AMI by Amazon, como cuando ejecuta:

sudo chsh $(which zsh) : // chsh command not found

Entonces deberías instalar util-linux-user :

sudo yum install util-linux-user

(de forma predeterminada, Amazon Linux AMI solo tiene lchsh , pero no puedo entender cómo funciona).

Luego ejecute el siguiente comando, debería funcionar:

sudo chsh -s $(which zsh) $(whoami)
chau giang
fuente
5

En Ubuntu, dentro del terminal GNOME, hacer cambios a través de chsh no tendrá el efecto esperado ...

Para superar este problema, haga esto:

  • Haga clic derecho en la terminal
  • Perfiles -> Preferencias de perfil
  • En la pestaña "Título y comando", marque "Ejecutar un comando personalizado en lugar de mi shell" y proporcione la ruta al ejecutable zsh.
  • Reiniciar Terminal.

Paz.

PD: No tengo 10 reputación para publicar imágenes, así que todas las instrucciones de texto. :)

Ben
fuente
Tienes el representante que necesitas ahora. : P
pradyunsg
0

una línea

sudo chsh -s $(which zsh) $(whoami)

Información adicional: después de eso, probablemente querrás hacer esto

git clone https://github.com/zdharma/fast-syntax-highlighting.git \
  ~/.oh-my-zsh/custom/plugins/fast-syntax-highlighting

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

nano ~/.zshrc 

find plugins = (git) Agregue zsh-autosuggestions y zsh-syntax-highlighting a plugins () como este

plugins = (git zsh-autosuggestions resaltado de sintaxis rápida)

source ~/.zshrc
OWADVL
fuente