Starten Sie Bash neu

18

Gibt es eine Möglichkeit, Bash vollständig neu zu starten und neu zu laden .bashrcund .profiledergleichen? Ich möchte sicherstellen, dass meine Änderungen nach dem Bearbeiten dieser Dateien ordnungsgemäß ausgeführt wurden.

Naftuli Kay
quelle

Antworten:

32

Lass es sich durch sich selbst ersetzen.

exec bash -l

Beachten Sie, dass dies keine Auswirkungen auf Dinge wie cwd oder exportierte Variablen hat.

Ignacio Vazquez-Abrams
quelle
Schön, aber ich würde dies besonders gerne tun, um zu überprüfen, ob meine PATHEinstellungen wie gewünscht sind oder meine PS1usw.
Naftuli Kay
1
Wenn execSie die entfernen, erhalten Sie eine Shell, die die gewünschten Dateien enthält. Dann, gerade exitwenn Sie fertig sind, überprüfen.
Arcege
@TK: Alle Variablen, die Sie zuweisen , haben Vorrang vor den Variablen , die von der vorherigen Shell übrig geblieben sind.
Ignacio Vazquez-Abrams
Das funktioniert also, wenn ich meine Bash-Eingabeaufforderung ändere? Dh, es wird meine Bash-Eingabeaufforderung jedes Mal neu laden, wenn ich es ausführe?
Naftuli Kay
Solange Sie $PS1in bashs Startdateien einstellen , ja.
Ignacio Vazquez-Abrams
9

Ich empfehle dringend, sich in einem separaten Fenster / Bildschirm anzumelden. Auf diese Weise haben Sie noch eine Arbeitssitzung, wenn bei Ihren Änderungen an Startdateien ein Fehler auftritt. Auch Sie sind sicher, eine saubere Umwelt zu haben.

Grund: Ich habe zu viele Leute gesehen, die sich aufgrund eines einfachen Tippfehlers in ihrem .profil (oder ähnlichem) aus einem System ausgeschlossen haben.

ktf
quelle
+10, eine saubere Shell, in der Sie Änderungen vornehmen können, ist unerlässlich.
Sardathrion - Wiedereinsetzung von Monica 17.10.11
Ich bin in einer DE, also sollte es nicht so schlimm sein, Bauhaus ja, sei vorsichtig.
Naftuli Kay
3

Wenn Sie die geänderten Dateien nur noch einmal lesen möchten, müssen Sie sie nicht neu starten. Sie können es einfach beschaffen.

source filename

oder

. filename # notice the dot

Beachten Sie, dass Sie dadurch keinen "sauberen Zustand" erhalten, in dem keine festgelegten Variablen oder definierten Funktionen gelöscht werden ...

rahmu
quelle
2
su -l yourOwnUserName

Öffnet eine neue Shell für den yourOwnUserNameBenutzer mit allen neu geladenen Einstellungen. Dies ist shellunabhängig, da es sich auf Systemeinstellungen bezieht, nicht auf Ihre spezifische Shell. Es werden auch einige systemweite Einstellungen geladen, bei denen bash -ldies nicht der Fall ist (wie bei Benutzergruppen).

rozcietrzewiacz
quelle
wichtiger hinweis: "eine frische schale" bedeutet hier eine schale in ihrer bestehenden schale, sie verschachteln also nur schalen und ersetzen nicht ihre ursprüngliche schale. Die akzeptierte Antwort macht das richtig.
Underscore_d