/ etc / profile vs ~ / .profile

13

Ich starte Ubuntu 12.04.1 LTS. Und ich kann die Reihenfolge / Priorität für das Laden von Profildateien nicht ermitteln. Wenn ich das System starte und mich über die GUI anmelde, welche Datei wird geladen? Und warum? Was ist, wenn login-shell ausgeführt wird? Wird es dasselbe sein? Im Moment kann ich nicht verstehen, warum mein ~/.profileSystem nicht geladen wird, wenn es gestartet wird, da ich sehe, dass es sollte:

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

Sonnenprophit
quelle
Wie testen Sie, ob ~ / .profile geladen ist?
Andrea Corbellini
Die Umgebungsvariable wird in ~ / .profile
sunprophit

Antworten:

3

Sie können in jeder Datei eine Variable definieren:

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

beziehungsweise

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

und führe ein

echo ${ORDER}

um zu sehen, worum es ging und in welcher Reihenfolge. Natürlich wird es Ihnen nicht sagen, ob es verschiedene Skripte gab, die Sie verpasst haben.

Wenn Sie also eine erwähnte Quelle sehen, lesen Sie dieses Skript, um zu prüfen, ob ein Skript eine andere Quelle enthält, und schließen Sie diese ebenfalls ein.

/etc/bash.bashrc und ~ / .bashrc und ~ / .bash_login fallen mir ebenso ein wie Dinge aus / etc / default.

Benutzer unbekannt
quelle
Hm, $ ORDER ist leer, was bedeutet, dass keiner von ihnen geladen ist?
Sunprophit
Nicht sicher, warum $ ORDER leer war, möglicherweise wegen eines Syntaxfehlers. Ich weiß nicht viel über Dash- und Bash-Unterschiede. Obwohl ich Sie als die richtige Antwort kennzeichnen werde, da dies dazu beigetragen hat, das Problem zu beheben.
Sunprophit
7

Es hängt alles davon ab, mit welchem ​​Benutzer Sie sich anmelden möchten. Die globale /etc/profileDatei wird für jeden Benutzer geladen , während die Datei ~/.profilenur für den Benutzer geladen wird.

~zeigt auf das Home-Verzeichnis des aktuellen Benutzers. Wenn Sie es also /home/user-a/.profileeingeben und sich als anmelden user-a, werden sowohl die globale als auch die benutzerspezifische Datei geladen (in dieser Reihenfolge). Wenn Sie sich als user-bohne .profileDatei anmelden , wird nur die globale Datei geladen .

gertvdijk
quelle
Im Profil des aktuellen Benutzers (~ / .profile) gibt es einen Teil, der Umgebungsvariablen aktualisieren soll. Ich meine, es ist nicht in einem anderen Profil. Es ist Profil dieses Benutzers. Aber ich habe versucht, @user_unknown-Lösung zum Testen des Ladens von Profilen und es scheint, dass keine von ihnen geladen sind.
Sunprophit
0

Beide sollten geladen werden und ~ / .profile sollte zuletzt geladen werden (was bedeutet, dass es Priorität hat).

dobey
quelle
Dann bin ich mir nicht sicher, was los ist. Wenn ich es explizit im Terminal starte, wird es geladen. Könnte es ein Problem beim Einloggen geben und im Ergebnis wird ~ / .profile nicht geladen, aber im Terminal gibt es keine dieser Probleme. Kann ich überprüfen, ob das System versucht hat, es zu laden?
Sunprophit
0

Es ist meine Schuld. Es gab [[some_test]] in meinem ~ / .profile und es läuft gut in bash, aber ich denke, Dash führt einige pre_session_creation / post_session_creation-Befehle beim Sitzungsstart aus und Dash weiß nicht [[keyword]. Also war alles geladen aber bei dem Fehler stehen geblieben.

Sonnenprophit
quelle