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.