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.

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.


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).


+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 ...


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).


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.