Przeładuj .profile bash bez wylogowania i ponownego zalogowania

81

Czy można zmusić bash do ponownego załadowania pliku .profile bez wylogowania i ponownego zalogowania?

Matty
źródło

Odpowiedzi:

102

Powinno to działać dla bieżącego terminala:

. ~/.profile

.jest bashwbudowanym i synonimem source, patrz man bash:

. nazwa_pliku [ argumenty ]
źródło filename [ argumenty ]
     Odczyt i wykonywanie poleceń z pliku w bieżącym środowisku powłoki (...).

Lukas Stejskal
źródło
18
Będzie działać tylko w obecnym terminalu.
enzotib
@enzotib Czy istnieje sposób na obejście tego?
Matty,
14
@Matty: nie, aby zmiany były widoczne dla całego środowiska graficznego, możesz tylko ponownie uruchomić sesję
enzotib
2
Jedynym problemem jest to, że jeśli usuniesz coś ze ścieżki, nie wejdzie to w życie, dopóki nie uruchomisz ponownie
Aras
1
@Aras sprawia, że ważnym punktem, który zasługuje rozbudowa: Jeśli coś jest usuwany z ~/.profilewyżej wspomnianej zmiany będą nie zastosowane po . ~/.profileprzeładowaniu. Na przykład, aby dodać funkcję ~/.profile: function externalip () { curl http://ipecho.net/plain; echo; }, a następnie ~/.profile- TO DZIAŁA. Teraz usuń tę funkcję z ~/.profile, a następnie . ~/.profileponownie. Funkcja jest nadal dostępna - tylko ponowne uruchomienie (wylogowanie i zalogowanie) ją usunie.
Seamus
13

Jeśli nie chcesz uruchamiać nowej powłoki, ale wykonujesz skrypt w bieżącej powłoce, możesz ją zdobyć:

source script_name.sh

source = .

sourceWbudowane Bash jest synonimem polecenia powłoki Bourne'a .(kropka).

dzięki uprzejmości - tldp.org

Amey Jah
źródło