Laden Sie das .profile von bash neu, ohne sich aus- und wieder einzuloggen


81

Ist es möglich, Bash zu erzwingen, um die .profile-Datei neu zu laden, ohne sich aus- und wieder einzuloggen?

Antworten:


102

Dies sollte für das aktuelle Terminal funktionieren:

. ~/.profile

.a bashbuiltin und ein Synonym für source, siehe man bash:

. Dateiname [ Argumente ]
Quelle Dateiname [ Argumente ]
     Liest und führt Befehle von Dateiname in der aktuellen Shell-Umgebung aus (…).


18
Es wird nur im aktuellen Terminal wirksam.
Enzotib

@enzotib Gibt es eine Möglichkeit, das zu umgehen?
Matty

14
@Matty: Nein, um die Änderungen für die gesamte grafische Umgebung sichtbar zu machen, können Sie die Sitzung nur neu starten
enzotib

2
Das einzige Problem dabei ist, dass, wenn Sie etwas aus dem Pfad entfernen, es erst nach einem Neustart wirksam wird
Aras

1
@Aras macht einen wichtigen Punkt , die Erweiterung verdient: Wenn etwas entfernt von ~/.profile, werde diese Änderung nicht wirksam , nachdem nehmen . ~/.profilereload. Fügen Sie zum Beispiel eine Funktion zu ~/.profile: function externalip () { curl http://ipecho.net/plain; echo; }, dann ~/.profile- es funktioniert. Entfernen Sie nun diese Funktion von ~/.profileund dann . ~/.profilewieder. Die Funktion ist weiterhin verfügbar. Nur ein Neustart (Abmelden und Anmelden) entfernt sie.
Seamus

13

Wenn Sie keine neue Shell starten möchten, sondern das Skript in der aktuellen Shell ausführen möchten, geben Sie Folgendes ein:

source script_name.sh

source = .

Die Bash source-Funktion ist ein Synonym für den Bourne-Shell- .Befehl (Punkt).

mit freundlicher Genehmigung von tldp.org

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.