.bashrc nicht automatisch initialisiert?

1483
Amorris

Beim Öffnen eines neuen Terminals muss ich das tun source ~/.bashrcoder source ~./bash_profilebevor meine $PATHVariable initialisiert wird. Ich dachte, .bashrchabe das automatisch gemacht? Wie mache ich es, damit ich das nicht tun muss.

0

1 Antwort auf die Frage

1
Alexandro de Oliveira

Ich bin mir nicht sicher, ob ich deine Fragen verstehe, aber:

Ihre bash-Init-Dateien sollten beim Booten bereitgestellt werden. Wenn nicht, ist Ihr System schlecht konfiguriert oder defekt.

Sie haben Ihr Betriebssystem nicht erwähnt, aber ich schätze, Sie verwenden Linux auf irgendeine Weise.

Die Reihenfolge der Initialisierung man bashlautet wie folgt:

Wenn bash als interaktive Login-Shell 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 aus dem ersten vorhandenen Befehl aus, der lesbar ist. Die Option --noprofile kann verwendet werden, wenn die Shell gestartet wird, um dieses Verhalten zu verhindern.
Wenn eine interaktive Shell gestartet wird, die keine Login-Shell ist, liest und führt bash Befehle aus /etc/bash.bashrc und ~ / .bashrc aus, wenn diese Dateien vorhanden sind. Dies kann mit der Option --norc verhindert werden. Die Option --rcfile file bewirkt, dass bash Befehle anstelle von /etc/bash.bashrc und ~ / .bashrc aus der Datei liest und ausführt .

In einer Ubuntu-Distribution zum Beispiel wird nach dem Laden /etc/profilevon eine ~/.profileDatei gesucht, die wie folgt aussieht:

if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi  # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi 

Das heißt, wenn bash verwendet wird und die Datei ~/.bashrcexistiert, wird sie geladen / sourcing und danach wird Ihre $ PATH-Variable gesetzt.

Deshalb schlage ich vor, dass Sie sich zuerst Ihre ~/.profileDatei ansehen und gegebenenfalls korrigieren.