Kiedy wprowadzam pewne zmiany w zachowaniu powłoki / bash, takie jak konfigurowanie aliasu, czy istnieje szybkie polecenie, aby ponownie zainicjować okno terminala zamiast zamykać i otwierać nowe okno?
49
Jeśli masz na myśli ponowne załadowanie konfiguracji .bashrc, to:
source ~/.bashrc
Aby mniej pisać, możesz zastąpić source
kropką:. ~/.bashrc
source ~/.bashrc
?source
jest specyficzny dla bash..
jest bardziej standardowy. Oba działają tak samo w bash.Niektóre dodatki znalazłem na stronie podręcznika z polecenia reset / tset
resetowanie terminala tset reset
Komenda:
reset
Tset inicjuje terminale. Tset najpierw określa typ używanego terminala. To ustalenie odbywa się w następujący sposób, przy użyciu pierwszego znalezionego typu terminala.
zaletą wydaje się być to, że jest niezależna od użytej powłoki. tutaj również działa z rybami.
Aby ponownie zainicjować dowolny terminal, po prostu zrób-
LUB
źródło
Dodatkową opcją
exec bash
jest to, że jeśli zmieniłeś.profile
(lub.bash_profile
), możesz to zrobićTo również przeczyta twój profil. Dodanie tej
-i
opcji nie zaszkodziłoby również jawne powiedzenie bashowi, że jest to interaktywna powłoka, ale normalnie może to sobie wyobrazić.źródło
Musisz zastąpić działającą aplikację / powłokę nową instancją. Np. Jeśli używasz
bash
jako preferowanej powłoki, wpisz w wierszu poleceń następujący wiersz ( $ jest symbolem zastępczym na początku wiersza poleceń):Działająca aplikacja / powłoka zostaje zastąpiona nową instancją
bash
podobną, zaczynając od zera. Wszystkie poprzednie modyfikacje zniknęły.Uwaga: Nie zapominaj, że aplikacja terminala może zostać przeprogramowana. Musisz ręcznie zresetować aplikację terminala.
źródło
twoja powłoka jest plikiem wykonywalnym, który możesz wywołać. Więc jeśli używasz bash, możesz zadzwonić,
bash
a jeśli używasz czegoś innego, jak zsh, możesz po prostu wejśćzsh
źródło
Zastosowanie
exec sudo --login --user $USER
.Jeśli chcesz również, aby poprzednio wprowadzone polecenia zniknęły (pełny reset terminala), połącz je z
reset
asreset; exec sudo --login --user $USER
Istnieje wiele odpowiedzi w Internecie, ale większość z nich nie działa. Łatwym sposobem na przetestowanie jest ustawienie,
export SOMEVAR=42
a następnie wykonanie rzekomo resetującego polecenia i wykonanieecho $SOMEVAR
. Jeśli jest to 42, środowisko nie zostało zresetowane.Jest też
exec -c bash -l
lubexec env -i bash -l
, ale są one uszkodzone, jakoś zmienna $ HOME nie jest ustawiana po tym.źródło