Me sorprendió no haber encontrado esta pregunta en el sitio. Entonces, hoy $surgió después de iniciar sesión como un nuevo usuario. Esto fue inesperado porque la solicitud de mi usuario principal comienza con username@computername:~$.
Entonces, ¿cómo cambio de este otro shell a bash?

$surgió en lugar deusername@computername:~$no significa que no fue una fiesta. El formato exacto de la solicitud se establece mediante la variable PS1, que se puede configurar o personalizar de manera diferente para diferentes usuarios.echo $SHELLpara averiguar cuál es tu caparazón actual./bin/shmenudo no significa mucho, eso suele ser un enlace simbólico a otra cosa. Escribiríals -l /bin/shpara ver para qué es un enlace simbólico. En algunos casos, ser un enlace simbólico a algo cambia su comportamiento, no creo que bash sea así.bashcomo/bin/shdeshabilita muchas funciones bash (entra en modo de cumplimiento POSIX).Respuestas:
Suponiendo que el shell desconocido admite la ejecución de un comando absoluto, puede intentar:
/bin/bashPara cambiar el shell predeterminado, usaría
chsh(1). Uso de la muestra:chsh -s /bin/bash $USERfuente
/etc/passwdchsh(1)solo permitirá cambiar a un shell que aparece en la lista/etc/shells(y está disponible, presumiblemente).chsh -lenumera las alternativas. Tenga cuidado, algunos (comonologin) están definidos para cuentas que nunca deben usarse para iniciar sesión (una buena manera de bloquearse), puede haber adiciones locales para usos especiales.Se escribe en
bash. Si desea que esto sea permanente, cambie el shell predeterminado/bin/basheditando/etc/passwd.Aquí hay algunos fragmentos de mi
/etc/passwd:El último campo contiene el shell, la modificación del campo después del último
:a un shell válido o no válido funcionará./bin/falsey/sbin/nologinambos significan que el usuario no tiene un shell de inicio de sesión real, aunque si pam no está configurado correctamente, esto no significa que no pueden iniciar sesión (informé de un error al respecto en Arch Linux, porque puede iniciar sesión gráficamente sin tener que un shell de inicio de sesión)./bin/bashy/bin/zshson ambas conchas válidas, ver/etc/shellslista de shells válidos en sus sistemas. Aquí está mi/etc/shellssi estás interesado.Sí, puede usar
chshousermodhacer las mismas cosas, recuerde que estos son solo archivos de texto estructurados y TIMTOWTDI.fuente
chshlugar de editar manualmentepasswd/etc/passwdque no tenía ganas de enumerar ninguno de ellos, porque siempre lo hago manualmente. chsh y usermod pueden hacerlo.Si chsh o la edición manual de la configuración no funciona, pero se ejecuta un script ~ / .profile al iniciar sesión, agregue esta línea:
fuente
touch ~/.bash_profileo de lo contrario, bash se ejecutará en un bucle: bash toma~/.profileen caso de~/.bash_profileque no exista.