Wie kann ich .bash_profile
von der Kommandozeile aus neu laden? Ich kann die Shell dazu bringen, Änderungen an .bash_profile
zu erkennen, indem Sie das Programm beenden und erneut anmelden. Ich möchte es jedoch auf Anfrage.
Geben Sie einfach source ~/.bash_profile
ein.
Wenn Sie beispielsweise Tastenkürzel speichern möchten, können Sie . ~/.bash_profile
eingeben.
. ~/.bash_profile
Stellen Sie nur sicher, dass Sie keine Abhängigkeiten vom aktuellen Status haben.
Einfach eintippen:
. ~/.bash_profile
Wenn Sie jedoch möchten, dass es automatisch ausgeführt wird, wenn das Terminal gestartet wird, anstatt es bei jedem Öffnen des Terminals auszuführen, können Sie der Datei . ~/.bash_profile
~/.bashrc
hinzufügen.
Anmerkung:
Wenn Sie ein Terminal öffnen, startet das Terminal die Bash im interaktiven Modus (ohne Anmeldung). Dies bedeutet, dass ~/.bashrc
als Quelle dient.
~/.bash_profile
wird nur von Bash bezogen, wenn es in interaktiver Anmeldemodus gestartet wird. Dies ist normalerweise nur der Fall, wenn Sie sich an der Konsole anmelden (Ctrl+Alt+F1..F6) oder über ssh
verbinden.
Sie können diesen Befehl auch verwenden, um das ~/.bash_profile für diesen Benutzer neu zu laden. Stellen Sie sicher, dass Sie den Bindestrich verwenden.
su - username
cd
eingeben. . .bash_profile
Ich mag die Tatsache, dass Sie, nachdem Sie die Datei gerade bearbeitet haben, nur noch Folgendes eingeben:
. !$
Dadurch wird die gerade in der Historie bearbeitete Datei gespeichert. Siehe Was ist Bang Dollar in Bash .
sie müssen nur . ~/.bash_profile
eingeben
siehe: https://superuser.com/questions/46139/what-does-source-do
Fügen Sie alias bashs="source ~/.bash_profile"
in Ihre Bash-Datei ein. Damit können Sie ab dem nächsten Mal bashs
aufrufen
wenn das Bash-Profil nicht vorhanden ist, können Sie versuchen, den folgenden Befehl auszuführen:
. ~/.bashrc
oder
source ~/.bashrc
anstelle von .bash_profile . Weitere Informationen zu bashrc
Wenn es Ihnen nichts ausmacht, den Verlauf Ihres aktuellen Shell-Terminals zu verlieren, können Sie dies auch tun
bash -l
Das würde Ihre Shell verzweigen und einen weiteren Kindprozess von bash eröffnen. Der -l
-Parameter weist bash an, als Login-Shell auszuführen. Dies ist erforderlich, da .bash_profile nicht als Nicht-Login-Shell ausgeführt wird. Weitere Informationen zu diesem finden Sie hier .
Wenn Sie die aktuelle Shell vollständig ersetzen möchten, können Sie auch Folgendes tun:
exec bash -l
Das Obige wird Ihre aktuelle Shell nicht unterteilen, sondern vollständig ersetzen. Wenn Sie exit
eingeben, wird sie vollständig beendet, anstatt Sie zur vorherigen Shell zu verschieben.
Ich wollte eine schnelle Antwort veröffentlichen, die bei Verwendung von source ~/.bash_profile
oder den oben genannten Antworten nur dazu führt, dass Ihr Bash-Profil in der aktuellen Registerkarte oder Sitzung, die Sie gerade anzeigen, neu geladen wird. Wenn Sie Ihr Bash-Profil auf jeder Registerkarte/Shell neu laden möchten, müssen Sie diesen Befehl jeweils manuell eingeben.
Wenn Sie iTerm verwenden, können Sie verwenden CMD⌘+Shift+I um einen Befehl in alle aktuellen Registerkarten einzugeben . Für das Terminal kann es nützlich sein, auf dieses Problem zu verweisen.
alias reload!=". ~/.bash_profile"
oder wenn Sie Protokolle über Funktionen hinzufügen möchten
function reload! () {
echo "Reloading bash profile...!"
source ~/.bash_profile
echo "Reloaded!!!"
}
Ich benutze Debian und kann einfach exec bash
eingeben, um dies zu erreichen. Ich kann nicht sagen, ob es auf allen anderen Distributionen funktioniert.
Ich betreibe Sierra und habe eine Weile daran gearbeitet (alle empfohlenen Lösungen ausprobiert). Ich wurde verwirrt und versuchte schließlich, meinen Computer neu zu starten! Es funktionierte
meine Schlussfolgerung ist, dass manchmal ein Hard Reset erforderlich ist