/ etc / profile vs ~ / .profile

13

Je lance ubuntu 12.04.1 LTS. Et je ne peux pas savoir quel est l'ordre / priorité pour le chargement des fichiers de profil. Lorsque je démarre le système et me connecte à l'aide de l'interface graphique, quel fichier est chargé? Et pourquoi? Et si vous exécutez login-shell? Sera-ce la même chose? En fait, en ce moment, je ne comprends pas pourquoi mon ~/.profilene se charge pas au démarrage du système, car ici je vois que cela devrait:

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

sunprophit
la source
Comment testez-vous si ~ / .profile est chargé?
Andrea Corbellini
Il y a une variable d'environnement mise à jour dans ~ /
.profile

Réponses:

3

Vous pouvez définir une variable dans chaque fichier:

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

respectivement

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

et effectuer une

echo ${ORDER}

pour voir, ce qui était impliqué et dans quel ordre. Bien sûr, il ne vous dira pas si vous avez manqué différents scripts.

Donc, si vous voyez une source mentionnée, lisez ce script pour voir si un script en source une autre et incluez-les également.

/etc/bash.bashrc et ~ / .bashrc et ~ / .bash_login me viennent à l'esprit, ainsi que des éléments de / etc / default.

Utilisateur inconnu
la source
Hm, $ ORDER est vide, ce qui signifie qu'aucun d'eux n'est chargé?
sunprophit
Je ne sais pas pourquoi $ ORDER était vide, peut-être à cause d'une erreur de syntaxe. Je ne connais pas grand-chose aux différences entre les tirets et bash. Bien que je vais marquer votre réponse comme étant la bonne, car cela a aidé à trouver où se situe le problème.
sunprophit
7

Tout dépend de l'utilisateur avec lequel vous essayez de vous connecter. Le /etc/profilefichier global est chargé pour chaque utilisateur , tandis que le ~/.profilen'est chargé que pour l'utilisateur.

~pointe vers le répertoire personnel de l'utilisateur actuel. Donc, si vous le placez /home/user-a/.profileet vous connectez en tant que user-a, le fichier global et son fichier spécifique à l'utilisateur sont chargés (dans cet ordre), tandis que si vous vous connectez en tant que user-bsans .profilefichier, il charge uniquement le fichier global.

gertvdijk
la source
Dans le profil de l'utilisateur actuel (~ / .profile), il y a une partie qui devrait mettre à jour les variables d'environnement. Je veux dire que ce n'est pas dans un autre profil. C'est le profil de cet utilisateur. Mais j'ai essayé la solution @user_unknown pour tester le chargement des profils et il semble qu'aucun d'entre eux ne soit chargé.
sunprophit
0

Les deux doivent être chargés et ~ / .profile doit être chargé en dernier (ce qui signifie qu'il a la priorité).

dobey
la source
Ensuite, je ne suis pas sûr de ce qui se passe. Si je l'exécute explicitement dans le terminal, il se charge. Pourrait-il y avoir un problème lors de la connexion et en résultat ~ / .profile ne se charge pas, mais dans le terminal il n'y a pas ces problèmes. Puis-je vérifier si le système a essayé de le charger?
sunprophit
0

C'est de ma faute. Il y avait [[some_test]] dans mon ~ / .profile et il fonctionne bien dans bash, mais je suppose que dash exécute certaines commandes pre_session_creation / post_session_creation au démarrage de la session et dash ne sait pas [[mot-clé. Tout avait donc été chargé mais arrêté à l'erreur.

sunprophit
la source