Bei der Installation von RVM bekommt man folgende Meldung:
* WARNING: You have '~/.profile' file, you might want to load it,
to do that add the following line to '/home/dotancohen/.bash_profile':
source ~/.profile
Ich mache mir Sorgen, weil meine Datei ~/.profile xmodmap ~/.Xmodmap
enthält die ich natürlich nicht jedes Mal ausführen möchte, wenn ich eine neue Shell öffne.
Warum könnten die klugen RVM-Entwickler vorschlagen, .profile
zu beschaffen in .bash_profile
?
Akzeptierte Antwort:
.profile
und .bash_profile
sind identisch in Bezug darauf, wann sie ausgeführt werden sollen:Sie werden ausgeführt, wenn Sie sich anmelden. Der Unterschied besteht darin, dass nur bash .bash_profile
ausführt; Shells im Bourne-Stil (dash, ksh usw.) führen .profile
aus . Bash selbst führt .profile
aus wenn .bash_profile
existiert nicht.
Auch wenn Sie bash als Login-Shell haben, .profile
ist oft derjenige, der ausgeführt wird, wenn Sie sich im grafischen Modus anmelden – viele Distributionen richten das X-Session-Startskript so ein, dass es unter sh
ausgeführt wird und laden Sie .profile
.
Daher der Rat, .profile
zu verwenden statt .bash_profile
um Dinge wie das Definieren von Umgebungsvariablen zu tun. Wenn Sie nicht unbedingt Bash-spezifische Funktionen benötigen, fügen Sie einfach alles in .profile
ein . Aber selbst wenn Sie das tun, gibt es einen Grund, ein .bash_profile
zu behalten , das heißt, wenn bash es lädt, lädt es .bashrc
nicht , auch wenn es interaktiv ist. Daher für die meisten Leute ~/.bash_profile
sollte aus diesen beiden Zeilen bestehen:
. ~/.profile
case $- in *i*) . ~/.bashrc;; esac
Sie sollten xmodmap
nicht ausführen aus .profile
. Diese wird nicht ausgeführt, wenn Sie eine neue Shell öffnen, aber sie wird beispielsweise ausgeführt, wenn Sie sich aus der Ferne mit SSH mit X11-Weiterleitung anmelden. Leider gibt es keine Standarddatei, die geladen wird, wenn Sie sich im grafischen Modus anmelden. Debian lädt ~/.xsessionrc
(Ich denke, das gilt für alle Display-Manager, außer Gdm, das ~/.xprofile
lädt stattdessen); andere Distributionen haben andere Einstellungen. Wenn Sie eine Cross-Distribution-Portabilität benötigen, ist es möglicherweise einfacher, Ihre Desktop-Umgebung so zu konfigurieren, dass xmodmap
ausgeführt wird wenn es beginnt. Wenn Sie nur CapsLock und Strg austauschen, können Sie dies mit XKB-Einstellungen tun, zu denen die meisten modernen Desktop-Umgebungen eine Schnittstelle bieten.