Wie kann ich
.bash_profile
über die Befehlszeile neu laden ?
Ich kann die Shell dazu bringen, Änderungen zu erkennen, .bash_profile
indem ich sie beende und mich wieder anmelde, aber ich möchte dies bei Bedarf tun können.
Wie kann ich
.bash_profile
über die Befehlszeile neu laden ?
Ich kann die Shell dazu bringen, Änderungen zu erkennen, .bash_profile
indem ich sie beende und mich wieder anmelde, aber ich möchte dies bei Bedarf tun können.
Antworten:
Einfach eingeben source ~/.bash_profile
Alternativ können Sie eingeben, wenn Sie Tastenanschläge speichern möchten . ~/.bash_profile
alias reload='source ~/.bash_profile && echo "File .bash_profile reloaded correctly" || echo "Syntax error, could not import the file"';
. ~/.bash_profile
Stellen Sie einfach sicher, dass Sie dort keine Abhängigkeiten vom aktuellen Status haben.
.
Befehl in diesem Fall?
.
ist einfach ein Alias für den source
Befehl.
.
ist älter als es source
ist.
source
ist eine bash-spezifische Implementierung von.
.
und source
sind buchstäblich das gleiche in Bash. Aus dem Link: " source
ist ein Synonym für Punkt / Punkt ' .
' in Bash, aber nicht in POSIX sh. Verwenden Sie für maximale Kompatibilität den Punkt."
Geben Sie einfach Folgendes ein:
. ~/.bash_profile
Wenn Sie jedoch möchten, dass die Quelle beim Start des Terminals automatisch ausgeführt wird, anstatt sie jedes Mal auszuführen, wenn Sie das Terminal öffnen, können Sie sie . ~/.bash_profile
der ~/.bashrc
Datei hinzufügen .
Hinweis:
Wenn Sie ein Terminal öffnen, startet das Terminal Bash im interaktiven Modus (ohne Anmeldung), dh, es wird als Quelle verwendet ~/.bashrc
.
~/.bash_profile
wird nur von bash bezogen, wenn es im interaktiven Anmeldemodus gestartet wird . Dies ist normalerweise nur möglich, wenn Sie sich an der Konsole anmelden ( Ctrl+ Alt+ F1.. F6) oder eine Verbindung herstellen ssh
.
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
Ich mag die Tatsache, dass Sie nach dem Bearbeiten der Datei nur noch Folgendes eingeben müssen:
. !$
Dadurch wird die Datei abgerufen, die Sie gerade im Verlauf bearbeitet haben. Siehe Was ist Bang Dollar in Bash .
cd
. .bash_profile
cd
. Keine Notwendigkeit für ~
.
cd
- Sie können es einfach aus dem Verzeichnis, in dem Sie sich gerade befinden, neu laden:. ~/.bash_profile
Wenn es Ihnen nichts ausmacht, den Verlauf Ihres aktuellen Shell-Terminals zu verlieren, können Sie dies auch tun
bash -l
Das würde deine Muschel spalten und einen weiteren untergeordneten Prozess der Bash eröffnen. Der -l
Parameter weist bash an, als Login-Shell ausgeführt zu werden. Dies ist erforderlich, da .bash_profile nicht als Nicht-Login-Shell ausgeführt wird. Weitere Informationen hierzu 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 verzweigen, sondern vollständig ersetzen. Wenn Sie also eingeben exit
, wird sie vollständig beendet, anstatt Sie zur vorherigen Shell zu bringen.
Fügen Sie alias bashs="source ~/.bash_profile"
Ihrer Bash-Datei hinzu. So können Sie bashs
ab dem nächsten Mal anrufen
reset
- leichter zu merken
Ich wollte eine kurze Antwort veröffentlichen, die während der Verwendung source ~/.bash_profile
oder der oben genannten Antworten funktioniert. Eine Sache, die erwähnt werden muss, ist, dass dadurch nur 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 in jeder Registerkarte manuell eingeben.
Wenn Sie iTerm verwenden, können Sie mit CMD⌘+ Shift+ Ieinen Befehl in alle aktuellen Registerkarten eingeben . Für das Terminal kann es nützlich sein, auf dieses Problem zu verweisen .
Sie müssen nur tippen . ~/.bash_profile
Ich benutze Debian und kann einfach tippen exec bash
, um dies zu erreichen. Ich kann nicht sagen, ob es auf allen anderen Distributionen funktioniert.
. .bash_profile
während in Ihrem Home-Verzeichnis auf dem Mac. Entspricht der Antwort von 7urkm3n.
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!!!"
}
. ~/. bash_profile
source ~/.bash_profile
Ich leite Sierra und habe eine Weile daran gearbeitet (alle empfohlenen Lösungen ausprobiert). Ich war verwirrt und versuchte schließlich, meinen Computer neu zu starten! Es funktionierte
Mein Fazit ist, dass manchmal ein Hard-Reset notwendig ist
alias BASHRELOAD=". ~/.bash_profile"
. Wenn Sie dies häufig tun, können Sie es einfach als Alias verwendenbr
.