Wenn ich ein Bash-Terminal starte, wird mein .profile nicht ausgeführt. Ich habe kein ~/.bash_profile oder ~/.bash_login, also sollte .profile doch laufen, oder? Was könnte sonst noch falsch sein?
Antwort1
Es ist keine Login-Shell.
Wenn es sich bei einer Shell um eine Login-Shell handelt, sucht sie nach .bash_profile, falls vorhanden, und dann nach .profile. Andere Shells suchen nach .bashrc
Sie können also die gewünschten Dinge in jeder Shell-Instanz in .bashrc einfügen und möglicherweise über eine Referenz verfügen, die .bashrc in .profile als Quelle verwendet.
Also: .bashrc:
stuff you want
Ende von .profile:
[ -n "$BASH" ] && [ -f ~/.bashrc ] && . ~/.bashrc
Antwort2
versuchen Sie es ~/.bashrc
stattdessen mit.
Antwort3
Wenn Sie einen grafischen Desktop verwenden, sollte .profile von Ihrem Desktop-Manager bezogen werden. Lightdmtutsource .profile jetzt, zumindest unter Ubuntu. Siehe:https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/794315
Mit kdm und Kubuntu-12.04 wird die Datei /etc/kde4/kdm/Xsession als Quelle verwendet, die das .profile einschließt. Kubuntu-12.10 wird wahrscheinlich lightdm verwenden. Ubuntu 12.04 verwendet lightdm, sodass /usr/sbin/lightdm-session als Quelle für .profile dient.
Ich denke, der richtige Weg besteht darin, (1) die Umgebungseinstellungen in ~/.profile festzulegen/zu exportieren und (2) .profile über .bash_profile zu beziehen:
[[ -f ~/.profile ]] && . ~/.profile
(und .bashrc darf weder von .profile noch von .bash_profile stammen).
Siehe auch:
- Festlegen der Umgebungsvariable BROWSER in .profile:http://fvue.nl/wiki/Linux:_Default_browser