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 $SHELL
para averiguar cuál es tu caparazón actual./bin/sh
menudo no significa mucho, eso suele ser un enlace simbólico a otra cosa. Escribiríals -l /bin/sh
para 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í.bash
como/bin/sh
deshabilita 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/bash
Para cambiar el shell predeterminado, usaría
chsh(1)
. Uso de la muestra:chsh -s /bin/bash $USER
fuente
/etc/passwd
chsh(1)
solo permitirá cambiar a un shell que aparece en la lista/etc/shells
(y está disponible, presumiblemente).chsh -l
enumera 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/bash
editando/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/false
y/sbin/nologin
ambos 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/bash
y/bin/zsh
son ambas conchas válidas, ver/etc/shells
lista de shells válidos en sus sistemas. Aquí está mi/etc/shells
si estás interesado.Sí, puede usar
chsh
ousermod
hacer las mismas cosas, recuerde que estos son solo archivos de texto estructurados y TIMTOWTDI.fuente
chsh
lugar de editar manualmentepasswd
/etc/passwd
que 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_profile
o de lo contrario, bash se ejecutará en un bucle: bash toma~/.profile
en caso de~/.bash_profile
que no exista.