Całkowicie zrestartuj Bash

18

Czy istnieje sposób, aby całkowicie restart bash i przeładowanie .bashrci .profileitp? Chciałbym się upewnić, że moje zmiany zadziałały poprawnie po edycji tych plików.

Naftuli Kay
źródło

Odpowiedzi:

32

Niech sam się zastąpi.

exec bash -l

Pamiętaj, że nie wpłynie to na takie rzeczy, jak cwd lub zmienne eksportowane.

Ignacio Vazquez-Abrams
źródło
Fajnie, ale szczególnie chciałbym to zrobić, aby sprawdzić, czy moje ustawienie PATHjest takie, jak chcę, czy moje PS1itp.
Naftuli Kay
1
Wyjmij execi otrzymasz powłokę, która pobiera żądane pliki. Następnie, exitgdy skończysz sprawdzanie.
Arcege
@TK: Wszelkie zmienne, które przypisujesz, będą miały pierwszeństwo przed zmiennymi pozostałymi z poprzedniej powłoki.
Ignacio Vazquez-Abrams
Czy to zadziała, zmieniając mój monit Bash? Czyli przeładuje mój monit bash za każdym razem, gdy go uruchomię?
Naftuli Kay 17.10.11
Tak długo, jak ustawiasz $PS1pliki startowe bash, tak.
Ignacio Vazquez-Abrams
9

Pilnie sugeruję zalogowanie się w osobnym oknie / ekranie. W ten sposób nadal masz sesję roboczą, jeśli coś pójdzie nie tak ze zmianami w plikach startowych. Z pewnością masz czyste środowisko.

Powód: widziałem zbyt wiele osób blokujących się z systemu z powodu prostej literówki w swoim .profile (lub podobnym).

ktf
źródło
+10, niezbędna jest czysta powłoka, w której można zmieniać zmiany.
Sardathrion - Przywróć Monikę
Jestem w DE, więc nie powinno być tak źle, Bauhaus tak, bądź ostrożny.
Naftuli Kay 17.10.11
3

Jeśli Twoim celem jest po prostu ponowne odczytanie zmodyfikowanych plików, nie musisz go ponownie uruchamiać. Możesz po prostu go zdobyć.

source filename

lub

. filename # notice the dot

Pamiętaj, że nie da to „czystego stanu” w tym sensie, że nie rozbroi żadnych ustawionych zmiennych ani zdefiniowanych funkcji ...

rahmu
źródło
2
su -l yourOwnUserName

Otworzy nową powłokę dla yourOwnUserNameużytkownika z ponownie załadowanymi wszystkimi ustawieniami. Jest to niezależne od powłoki, ponieważ odnosi się do ustawień systemowych, a nie konkretnej powłoki. Ładuje również niektóre ustawienia systemowe, które bash -ltego nie robią (np. Grupy użytkowników).

rozcietrzewiacz
źródło
ważna uwaga: „świeża skorupa” oznacza tutaj powłokę w istniejącej skorupie, więc zagnieżdżasz tylko skorupy, a nie zastępujesz oryginalną. Akceptowana odpowiedź robi to poprawnie.
underscore_d