Jak mogę przeładować
.bash_profile
z linii poleceń ?
Mogę sprawić, aby powłoka rozpoznała zmiany .bash_profile
, wychodząc i logując się ponownie, ale chciałbym móc to zrobić na żądanie.
Jak mogę przeładować
.bash_profile
z linii poleceń ?
Mogę sprawić, aby powłoka rozpoznała zmiany .bash_profile
, wychodząc i logując się ponownie, ale chciałbym móc to zrobić na żądanie.
Odpowiedzi:
Po prostu wpisz source ~/.bash_profile
Alternatywnie, jeśli lubisz zapisywać naciśnięcia klawiszy, możesz wpisać . ~/.bash_profile
alias reload='source ~/.bash_profile && echo "File .bash_profile reloaded correctly" || echo "Syntax error, could not import the file"';
. ~/.bash_profile
Tylko upewnij się, że nie masz żadnych zależności od obecnego stanu.
.
polecenie w tym przypadku?
.
jest po prostu aliasem source
polecenia.
.
jest starszy niż source
JEST.
source
jest specyficzną dla basha implementacją.
.
i source
dosłownie to samo w bash. Z linku: „ source
jest synonimem kropki / kropki .
” w bash, ale nie w POSIX sh, więc dla maksymalnej kompatybilności użyj kropki . ”
Po prostu wpisz:
. ~/.bash_profile
Jeśli jednak chcesz, aby źródło było uruchamiane automatycznie po uruchomieniu terminalu zamiast uruchamiania go za każdym razem, gdy otwierasz terminal, możesz dodać go . ~/.bash_profile
do ~/.bashrc
pliku.
Uwaga:
Gdy otworzysz terminal, terminal rozpocznie bash w trybie interaktywnym (bez logowania), co oznacza, że będzie źródłem ~/.bashrc
.
~/.bash_profile
jest pozyskiwany wyłącznie przez bash, gdy jest uruchamiany w trybie interaktywnego logowania . Zwykle dzieje się tak tylko wtedy, gdy logujesz się na konsoli ( Ctrl+ Alt+ F1.. F6) lub łączysz się ssh
.
Możesz także użyć tego polecenia, aby ponownie załadować ~ / .bash_profile dla tego użytkownika. Pamiętaj, aby użyć myślnika.
su - username
Podoba mi się fakt, że po właśnie edycji pliku wystarczy, że napiszesz:
. !$
To źródło pliku, który właśnie edytowałeś w historii. Zobacz Co to jest dolar hukowy w bash .
cd
. .bash_profile
cd
. Nie ma potrzeby ~
.
cd
- możesz po prostu ponownie załadować go z katalogu, w którym aktualnie się znajdujesz:. ~/.bash_profile
Jeśli nie masz nic przeciwko utracie historii obecnego terminala powłoki, możesz to zrobić
bash -l
To rozwidliłoby twoją powłokę i otworzyłoby kolejny potomny proces bash. Ten -l
parametr mówi bashowi, aby działał jako powłoka logowania, jest to wymagane, ponieważ plik .bash_profile nie będzie działał jako powłoka niezalogowana. Aby uzyskać więcej informacji o tym przeczytaj tutaj
Jeśli chcesz całkowicie zastąpić bieżącą powłokę, możesz również:
exec bash -l
Powyższe nie rozwidli twojej obecnej powłoki, ale całkowicie ją zastąpi, więc podczas pisania exit
całkowicie się zakończy, zamiast upuszczać cię do poprzedniej powłoki.
Dodaj alias bashs="source ~/.bash_profile"
do swojego pliku bash. Możesz więc zadzwonić bashs
od razu
reset
- łatwiej zapamiętać
jeśli plik .bash_profile nie istnieje, możesz spróbować uruchomić następującą komendę:
. ~/.bashrc
lub
source ~/.bashrc
zamiast .bash_profile. Możesz znaleźć więcej informacji o bashrc
Chciałem opublikować szybką odpowiedź, która podczas korzystania source ~/.bash_profile
lub odpowiedzi wspomniane powyżej działają, należy wspomnieć, że ładuje to tylko Twój profil bash w bieżącej karcie lub sesji, którą przeglądasz. Jeśli chcesz ponownie załadować swój profil bash na każdej karcie / powłoce, musisz wprowadzić to polecenie ręcznie w każdym z nich.
Jeśli korzystasz z iTerm, możesz użyć CMD⌘+ Shift+, Iaby wprowadzić polecenie do wszystkich bieżących kart . W przypadku terminala przydatne może być odniesienie do tego problemu ;
musisz tylko wpisać . ~/.bash_profile
Używam Debiana i mogę po prostu pisać, exec bash
aby to osiągnąć. Nie mogę powiedzieć, czy będzie działać na wszystkich innych dystrybucjach.
. .bash_profile
gdy jesteś w katalogu domowym na komputerze Mac. To samo co odpowiedź udzielona powyżej przez 7urkm3n.
alias reload!=". ~/.bash_profile"
lub jeśli chcesz dodać dzienniki za pomocą funkcji
function reload! () {
echo "Reloading bash profile...!"
source ~/.bash_profile
echo "Reloaded!!!"
}
. ~/. bash_profile
nie source ~/.bash_profile
Korzystam z Sierra i pracuję nad tym przez jakiś czas (próbuję wszystkich zalecanych rozwiązań). Byłem zdezorientowany, więc w końcu próbowałem ponownie uruchomić komputer! Zadziałało
doszedłem do wniosku, że czasami konieczny jest twardy reset
alias BASHRELOAD=". ~/.bash_profile"
. Jeśli robisz to często, możesz po prostu aliasować jakobr
.