¿Qué hace "Ejecutar comando como un shell de inicio de sesión"?


28

Tengo algunos programas separados instalados, algunos de los cuales requieren que vaya a la configuración de mi terminal GUI y habilite / deshabilite la opción "Ejecutar comando como un shell de inicio de sesión" para que funcione.

Ejemplo:

Instalé Ruby on Rails . Desafortunadamente, tengo que ir a las opciones del terminal y habilitar "Ejecutar comando como shell de inicio de sesión" para que esté en mi RUTA.

Esto no fue un gran problema hasta que instalé sexy-bash-prompt , que funciona solo si la opción está desactivada.

Entonces mi pregunta es esencialmente: ¿qué hace "Ejecutar comando como shell de inicio de sesión"? ¿Hay alguna manera de obtener las cosas que se ejecutan cuando está deshabilitado para ejecutarse cuando se ejecuta como shell de inicio de sesión?

Respuestas:


31

Suponiendo que su shell es Bash (el predeterminado en Ubuntu), estas son las diferencias:

  • Cuando se ejecuta como un shell de inicio de sesión , Bash leerá ~/.bash_profile(o, si eso no existe ~/.profile) , al inicio. En algunos casos, este archivo también se lee ~/.bashrc.

  • Cuando se ejecuta como un shell sin inicio de sesión , Bash leerá ~/.bashrc.

Entonces, ¿por qué ves comportamientos diferentes cuando se ejecuta como un shell de inicio de sesión / no inicio de sesión? Porque tu .bash_profile/ .profileestá haciendo cosas diferentes a las tuyas .bashrc.

La solución que recomendaría en su caso es a copiar las personalizaciones realizadas a .bash_profile/ .profile, pegar ellos en .bashrcy desactivar "comando Ejecutar como un intérprete de ingreso".


Ahh ok. Supuse que tenía que ver con el perfil de inicio de sesión que leía (la fuente .bashrc soluciona algunos de los problemas que tenía). Lo intentaré, perdón por la horrible pregunta escrita.
AlbertEngelB

Gracias por la explicación concisa. No es raro ver a las personas simplemente mantener sus personalizaciones en .bashrc y tener .bash_profile para obtener .bashrc. Las personalizaciones específicas de inicio de sesión deben mantenerse solo en .bash_profile.
MichaelZ

1
¿Por qué no simplemente colocar .bashrc en .bash_profile y dejar activado el shell de inicio de sesión? ¿Es eso factible?
Dr. Nefario
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.