Ok, ich habe das Problem gelöst. Es basiert auf einer Antwort auf diese Frage von StackOverflow, die ich gefunden habe, nachdem ich meine Suchbegriffe etwas bei Google gemischt hatte. Ich habe folgende Zeile hinzugefügt .bashrc
:
source /etc/profile
Jetzt funktioniert alles wie es soll.
BEARBEITEN: Warum das Problem auftritt
Ich habe herausgefunden, warum Sie die BASH- Shell explizit zwingen müssen, / etc / profile zu lesen, anstatt sie beim Aufruf lesen zu lassen. Hier ist der relevante Abschnitt aus dem BASH- Handbuch ( man bash
):
Wenn eine interaktive Shell gestartet wird, die keine Login-Shell ist, liest und führt bash Befehle aus ˜ / .bashrc aus, sofern diese Datei vorhanden ist. Dies kann durch Verwendung der Option –norc verhindert werden . Die --rc fi le fi le Option zwingt Bash Befehle aus zu lesen und auszuführen fi le statt ~ / .bashrc .
Aus der Art und Weise, wie dies geschrieben wird (und was darüber gesagt wird, wie Login-Shells zuvor aufgerufen werden), kann man daraus schließen, dass shell.el
keine Login-Shell aufgerufen wird. Ich habe nach Beweisen dafür gesucht shell.el
und es scheint wahr zu sein, BASH wird mit der -i- Flag (interaktiv) aufgerufen, nicht aber mit der --login- Flag. Nicht-Login-Shells lesen .bashrc . Aus diesem Grund können Sie das Problem umgehen, indem Sie es source /etc/profile
in .bashrc einfügen .