Wenn ich ein Bash-Terminal starte, wird mein .profile nicht ausgeführt. Ich habe kein ~ / .bash_profile oder ~ / .bash_login, also soll .profile laufen, oder? Was könnte sonst noch falsch sein?
Wenn ich ein Bash-Terminal starte, wird mein .profile nicht ausgeführt. Ich habe kein ~ / .bash_profile oder ~ / .bash_login, also soll .profile laufen, oder? Was könnte sonst noch falsch sein?
Antworten:
Es ist keine Login-Shell.
Wenn es sich bei einer Shell um eine Anmeldeshell handelt, wird nach .bash_profile gesucht, sofern vorhanden, und danach nach .profile. Andere Shells suchen nach .bashrc
Sie können also die gewünschten Elemente in jede Shell-Instanz in .bashrc einfügen und möglicherweise einen Verweis haben, der .bashrc in .profile enthält.
Also: .bashrc:
stuff you want
Ende von .profile:
[ -n "$BASH" ] && [ -f ~/.bashrc ] && . ~/.bashrc
bash --login
. In Ihrem Fall scheint es nur bash auszuführen, was standardmäßig keine Login-Shell auslöst
Wenn Sie einen grafischen Desktop verwenden, sollte .profile von Ihrem Desktop-Manager bereitgestellt werden. Lightdm macht jetzt Source .profile, zumindest auf Ubuntu. Siehe: https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/794315
Mit kdm und Kubuntu-12.04 wird die Datei / etc / kde4 / kdm / Xsession bezogen, die auch das .profile enthält. Kubuntu-12.10 wird wahrscheinlich lightdm verwenden. Ubuntu 12.04 verwendet lightdm, sodass / usr / sbin / lightdm-session .profile enthält.
Ich denke, der Weg ist, (1) Umgebungseinstellungen in ~ / .profile festzulegen / zu exportieren und (2) .profile von .bash_profile zu beziehen:
[[ -f ~/.profile ]] && . ~/.profile
(und nicht .bashrc, das von .profile oder .bash_profile bezogen wurde).
Siehe auch:
.profile
bei der Anmeldung erhalten, aber er fragt sich tatsächlich, wie Sie sie erhalten bash
, wenn er ein Terminal startet (nicht bei der Anmeldung)