.profile no se ejecuta cuando inicio un terminal bash


15

Cuando inicio una terminal bash, mi .profile no se está ejecutando. No tengo un ~ / .bash_profile o un ~ / .bash_login, por lo que se supone que .profile debe ejecutarse, ¿verdad? ¿Qué más podría estar mal?

Respuestas:


23

No es un shell de inicio de sesión.

Si un shell es un shell de inicio de sesión, buscará .bash_profile si existe, luego .profile. Otras conchas buscan .bashrc

Por lo tanto, puede poner las cosas que desea en cada instancia de shell en .bashrc, y posiblemente tener una referencia que las fuentes .bashrc en .profile.

Entonces: .bashrc:

stuff you want

final de .profile:

[ -n "$BASH" ] && [ -f ~/.bashrc ] && . ~/.bashrc

Entonces, cuando ejecuto 'konsole' en KDE, ese es un shell sin inicio de sesión, ¿verdad? En otra máquina, definitivamente puse cosas en .profile y las hice funcionar cuando abro un terminal como este.
David Doria

@DavidDoria depende, he cambiado las configuraciones o he creado alias para lo que ejecuta konsole, para que se ejecute bash --login. En su caso, parece simplemente ejecutar bash, que por defecto no activará un shell de inicio de sesión
Rich Homolka

Si está utilizando LightDM, esa podría ser la razón. Otros gestores de pantallas como GDM y KDM fuente .profile al iniciar sesión, pero LightDM no (por diseño). Ver bugs.debian.org/cgi-bin/bugreport.cgi?bug=636108
jhenninger

Estoy usando KDM.
David Doria

2
Si está utilizando Gnome Terminal, puede hacer Editar-> Preferencias de perfil, ir a la pestaña Título y comando, y marcar "Ejecutar comando como un shell de inicio de sesión". Luego generará su .bash_profile o .profile cada vez que abra una terminal, como se esperaba.
Lambart el


1

Si está utilizando un escritorio gráfico, su administrador de escritorio debe obtener el .profile. Lightdm hace fuente .profile ahora, al menos en Ubuntu. Ver: https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/794315

Con kdm y Kubuntu-12.04, se obtiene el archivo / etc / kde4 / kdm / Xsession, que incluye el perfil. Kubuntu-12.10 probablemente usará lightdm. Ubuntu 12.04 usa lightdm para que / usr / sbin / lightdm-session fuentes .profile.

Creo que el camino a seguir es (1) establecer / exportar la configuración del entorno en ~ / .profile y (2) tener .profile originado por .bash_profile:

[[ -f ~/.profile ]] && . ~/.profile

(y no tener .bashrc originado por .profile o .bash_profile).

Ver también:


1
Esto explica cómo obtener su .profilefuente al iniciar sesión, pero en realidad se pregunta cómo obtenerla bashcuando lance un terminal (no al iniciar sesión)
cpast

No debería querer obtener un .profile cuando inicie un nuevo terminal (desde KDE). El propósito completo de .profile es obtenerlo una vez al iniciar sesión, ya sea en un terminal gráfico o un terminal de texto; .profile debería haberse obtenido en el momento en que inició sesión en KDE.
Freddy Vulto

.profile debe ser obtenido por su administrador de escritorio. Bueno, esto depende de la comprensión del propósito del archivo. En Debian, / etc / profile (y ~ / .profile como su extensión) está destinado a los shells tipo bash .
Alois Mahdal

No necesita volver a buscarlo SI se obtiene al iniciar sesión. su bash lo heredará a menos que esté haciendo algo tonto como "export PATH = ~ / .bin" o algo que lo sobrescriba.
RichieHH
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.