Riavvia completamente Bash


18

C'è un modo per riavviare completamente Bash, ricaricare .bashrce .profilesimili? Vorrei assicurarmi che le mie modifiche funzionassero correttamente dopo aver modificato questi file.

Risposte:


32

Fallo sostituire con se stesso.

exec bash -l

Nota che questo non influirà su cose come la variabile cwd o esportata.


Bello, ma mi piacerebbe in particolare farlo per verificare e vedere se il mio PATHè stato impostato come voglio o il mio PS1, ecc.
Naftuli Kay,

1
Elimina exece otterrai una shell che genera i file che desideri. Quindi proprio exitquando hai finito di controllare.
Arcege,

@TK: qualsiasi variabile assegnata avrà la precedenza su quelle rimaste dalla shell precedente.
Ignacio Vazquez-Abrams,

Quindi questo funzionerà per cambiare il mio prompt di Bash? Cioè, ricaricherà il mio prompt di bash ogni volta che lo eseguo?
Naftuli Kay,

Finché stai impostando $PS1nei file di avvio di bash, sì.
Ignacio Vazquez-Abrams,

9

Consiglio urgentemente di accedere in una finestra / schermo separata. In questo modo hai ancora una sessione di lavoro se qualcosa va storto con le tue modifiche ai file di avvio. Inoltre sei sicuro di avere un ambiente pulito.

Motivo: ho visto troppe persone bloccarsi da un sistema a causa di un semplice errore di battitura nel loro .profile (o simile).


+10, una shell pulita in cui è possibile modificare le modifiche è essenziale.
Sardathrion - Ripristina Monica il

Sono in DE, quindi non dovrebbe essere così male, Bauhaus sì, stai attento.
Naftuli Kay,

3

Se il tuo obiettivo è semplicemente leggere nuovamente i file modificati, non è necessario riavviarlo. Puoi semplicemente cercarlo.

source filename

o

. filename # notice the dot

Nota che questo non ti darà uno "stato pulito", nel senso che non disinserirà alcuna variabile impostata o funzioni definite ...


2
su -l yourOwnUserName

Aprirà una nuova shell per l' yourOwnUserNameutente con tutte le impostazioni ricaricate. Questo è indipendente dalla shell, in quanto si riferisce alle impostazioni di sistema, non alla shell specifica. Carica anche alcune impostazioni a livello di sistema che bash -lnon lo fanno (come i gruppi di utenti).


nota importante: "una shell fresca" qui significa una shell all'interno della shell esistente, quindi stai solo annidando le shell, non sostituendo quella originale. La risposta accettata lo fa correttamente.
underscore_d
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.