Setzen Sie alles in .bashrc
und dann Quelle .bashrc
aus.profile
Von der Bash-Manpage (unter OS X 10.9):
Wenn eine interaktive Shell gestartet wird, die keine Anmeldeshell ist, liest bash Befehle von ~ / .bashrc und führt sie aus, sofern diese Datei vorhanden ist. Dies kann mit der Option --norc verhindert werden. Die Option --rcfile file erzwingt, dass Bash anstelle von ~ / .bashrc Befehle aus der Datei liest und ausführt
Der obige Text ist, warum alles eingegeben wird .bashrc
. Es gibt jedoch ein etwas anderes Verhalten, wenn Sie mit einer Anmeldeshell arbeiten. Nochmals ein Zitat aus der Manpage:
Wenn bash als interaktive Anmeldeshell oder als nicht interaktive Shell mit der Option --login aufgerufen wird, werden zuerst Befehle aus der Datei / etc / profile gelesen und ausgeführt, sofern diese Datei vorhanden ist. Nach dem Lesen dieser Datei sucht sie in dieser Reihenfolge nach ~ / .bash_profile, ~ / .bash_login und ~ / .profile und liest und führt Befehle von der ersten Datei aus, die vorhanden und lesbar ist. Die Option --noprofile kann verwendet werden, wenn die Shell gestartet wird, um dieses Verhalten zu unterbinden.
.profile
wird für Login-Shells gelesen, ist es aber .bashrc
nicht. Das Duplizieren all dieser Inhalte .bashrc
ist schlecht, so dass wir sie als Quelle verwenden .profile
müssen, damit das Verhalten konsistent bleibt.
Sie möchten jedoch nicht unbedingt .bashrc
von .profile
beziehen. Weitere Informationen finden Sie in den Kommentaren und anderen Antworten.