Me sorprendió no haber encontrado esta pregunta ya en el sitio. Hoy me ha aparecido $
después de conectarme como nuevo usuario. Esto fue inesperado porque mi usuario principal comienza con username@computername:~$
.
Entonces, ¿cómo puedo cambiar de este otro shell a bash?
Asumiendo que el shell desconocido soporta la ejecución de un comando absoluto, podrías probar: /bin/bash
Para cambiar el shell por defecto, usaría chsh(1)
. Ejemplo de uso: chsh -s /bin/bash $USUARIO
.
Escribe bash
. Si quieres que esto sea permanente cambia el shell por defecto a /bin/bash
editando /etc/passwd
.
Aquí hay algunos fragmentos de mi /etc/passwd
:
avahi:x:84:84:Avahi daemon:/:/bin/false
xenoterracide:x:1000:100::/home/xenoterracide:/bin/zsh
postgres:x:88:88::/var/lib/postgres:/bin/zsh
bob:x:1001:1001::/home/bob:/bin/bash
usbmux:x:140:140:usbmux user:/:/sbin/nologin
El último campo contiene el shell, Modificando el campo después de la última :
a un shell válido o no válido funcionará. /bin/false
y /sbin/nologin
ambos significan que el usuario no tiene un shell de login real, aunque si pam no está bien configurado esto no significa que no puedan iniciar sesión (informé de un bug sobre esto en Arch Linux, porque se puede iniciar sesión gráficamente sin tener un shell de login). /bin/bash
y /bin/zsh
son ambos shells válidos, vea /etc/shells
para una lista de shells válidos en sus sistemas. Aquí está mi /etc/shells
si estás interesado.
/bin/sh
/bin/bash
/bin/ksh
/bin/zsh
/bin/dash
Si puedes usar chsh
o usermod
para hacer las mismas cosas, por favor recuerda que estos son solo archivos de texto estructurados, y TIMTOWTDI.