Jakiś czas temu dowiedziałem się, że mogę tworzyć własne terminale poleceń z rozszerzaniem zmiennej PATH. Niestety zawsze się resetuje, kiedy zamykam terminal i otwieram go ponownie.
Czy wiesz jak rozwiązać ten problem?
Ponieważ kiedy chcę uruchomić kilka skryptów za pomocą komend terminalowych, nie chcę za każdym razem rozszerzać zmiennej PATH ...
.bashrc
?.bashrc
plik w ten sposób:gedit ~/.bashrc
i umieść tam, co chcesz (na dole pliku jest lepiej), np.PATH="~/my/cool/path/:$PATH"
i wyeksportuj tę zmienną: po wprowadzonej linii umieść,export PATH
a następnie zapisz plik, a następnie zamknij terminal i otwórz ponownie to i teraz~/my/cool/path
zostaną znalezione twoje pliki wykonywalne .:)
Odpowiedzi:
Rozumiem, że masz jakieś pliki wykonywalne w jednym z folderów domowych, np. Wewnątrz
~/bin
i chcesz móc je wykonywać bez wpisywania pełnej ścieżki~/bin/my_cool_executable
.Już zauważyłeś, że wejście
PATH=~/bin:$PATH
do terminala sprawiło, że wszystko działało ... ale tylko do momentu zamknięcia terminalu. Po otwarciu nowej poprzedniaPATH
zmienna zostaje przywrócona do pierwotnej wartości. Przy okazji, myślę, że wiesz, jak w każdej chwili sprawdzić wartośćPATH
zmiennej: tak:Jak sprawić, by zmiana była trwała, aby
PATH
pozostała taka sama po ponownym otwarciu nowego terminalu? To bardzo proste, wystarczy edytować.bashrc
plik. Użyjmygedit
edytora: w terminalu wpisz:Otwiera to
gedit
edytor. Przewiń do końca pliku i dodaj to:i zapisz plik i wyjdź
gedit
. Następnie zamknij terminal i otwórz nowy. Teraz twojaPATH
zmienna powinna mieć~/bin
przed sobą, aby twoje komendy~/bin
były dostępne bez wpisywania ich pełnej ścieżki. I wiesz, jak sprawdzić, że:echo "$PATH"
.Cieszyć się!
Ostrzeżenie . Wprowadzanie zmiennej jest uważane za złą praktykę i lukę
.
w zabezpieczeniachPATH
.źródło
/usr/local/bin
zamiast manipulowaniaPATH
zmienną ... lub w/usr/local/sbin
przypadku, gdy dostęp do nich ma tylko root.