/ etc / profile vs ~ / .profile

13

Ejecuto ubuntu 12.04.1 LTS. Y no puedo obtener cuál es el orden / prioridad para cargar archivos de perfil. Cuando inicio el sistema e inicio sesión con GUI, ¿qué archivo está cargado? ¿Y por qué? ¿Qué pasa si ejecuta login-shell? ¿Será lo mismo? En realidad, ahora no puedo entender por qué mi ~/.profileno se carga cuando se inicia el sistema porque aquí veo que debería:

https://help.ubuntu.com/community/EnvironmentVariables

sunprofit
fuente
¿Cómo está probando si ~ / .profile está cargado?
Andrea Corbellini
Hay una variable de entorno actualizada en ~ / .profile
sunprophit el

Respuestas:

3

Puede definir una variable en cada archivo:

ORDER=${ORDER}+"/etc/profile"

respectivamente

ORDER=${ORDER}+"~/.profile"

y realizar un

echo ${ORDER}

para ver qué estaba involucrado y en qué orden. Por supuesto, no te dirá si hay diferentes scripts que te perdiste.

Entonces, si ve una fuente mencionada, lea ese script para buscar, si un script genera otro, e inclúyalos también.

/etc/bash.bashrc y ~ / .bashrc y ~ / .bash_login vienen a la mente, así como cosas de / etc / default.

usuario desconocido
fuente
Hm, $ ORDER está vacío, lo que significa que ninguno de ellos está cargado?
Sunprophit
No estoy seguro de por qué $ ORDER estaba vacío, tal vez debido a algún error de sintaxis. No sé mucho sobre las diferencias de tablero y bash. Aunque voy a marcar su respuesta como la correcta porque ayudó a llegar a dónde está el problema.
Sunprophit
7

Todo depende del usuario con el que intente iniciar sesión. El /etc/profilearchivo global se carga para cada usuario , mientras ~/.profileque solo se carga para el usuario.

~apunta al directorio de inicio del usuario actual. Entonces, si lo coloca /home/user-a/.profilee inicia sesión como user-a, se cargan tanto el archivo global como su archivo específico del usuario (en ese orden), mientras que si inicia sesión como user-bsin un .profilearchivo, solo carga el archivo global.

gertvdijk
fuente
En el perfil del usuario actual (~ / .profile) hay una parte que debe actualizar las variables de entorno. Quiero decir que no está en otro perfil. Es el perfil de este usuario. Pero probé la solución @user_unknown para probar la carga de perfiles y parece que ninguno de ellos está cargado.
Sunprophit
0

Ambos deben cargarse, y ~ / .profile debe cargarse en último lugar (lo que significa que tiene prioridad).

dobey
fuente
Entonces no estoy seguro de lo que está pasando. Si lo ejecuto explícitamente en la terminal, se carga. Podría haber un problema durante el inicio de sesión y, como resultado, ~ / .profile no se carga, pero en el terminal no hay estos problemas. ¿Puedo verificar si el sistema intentó cargarlo?
Sunprophit
0

Que es mi culpa. Había [[some_test]] en mi ~ / .profile y funciona bien en bash, pero supongo que dash ejecuta algunos comandos pre_session_creation / post_session_creation al inicio de la sesión y dash no sabe [[keyword. Así que todo se había cargado pero se detuvo ante el error.

sunprofit
fuente