Co to jest $PATH
?
Jak mogę mieć polecenia / programy, które są dostępne tylko dla mnie?
Widziałem ~/bin
wcześniej wspomnianą ścieżkę , ale do czego służy i jak z niej korzystać?
environment-variables
Braiam
źródło
źródło
Odpowiedzi:
$ PATH to zmienna środowiskowa używana do wyszukiwania poleceń. ~ Jest twoim katalogiem domowym, więc ~ / bin będzie / home / user / bin; jest to normalny katalog.
Na przykład, gdy uruchamiasz „ls” w powłoce, faktycznie uruchamiasz program / bin / ls; dokładna lokalizacja może się różnić w zależności od konfiguracji systemu. Dzieje się tak, ponieważ / bin znajduje się w $ PATH.
Aby zobaczyć ścieżkę i znaleźć lokalizację określonego polecenia:
Aby mieć własny prywatny katalog bin, wystarczy dodać go do ścieżki. Zrób to, edytując ~ / .profile (ukryty plik), aby uwzględnić poniższe linie. Jeśli linie są komentowane, musisz je tylko odkomentować; jeśli już tam są, wszystko gotowe!
Teraz musisz utworzyć katalog ~ / bin, a ponieważ .profile jest uruchamiany przy logowaniu i dodaje ~ / bin tylko wtedy, gdy istnieje, musisz zalogować się ponownie, aby zobaczyć zaktualizowaną ŚCIEŻKĘ.
Przetestujmy to:
źródło
type
sprawdzenie, jak powłoka rozpozna rzeczywiste polecenie; np .:which echo
itype echo
zgłasza różne rzeczy,which
zwraca „/ bin / echo”, ale „typ” zwraca informację, że jest to wbudowana powłoka, którą powłoka woli przed plikiem w „/ bin”.which
jest lepiej zastępowany przeztype
lubcommand
w interaktywnych powłokach i jest całkowicie bezużyteczny w skryptach.$HOME
zmienna$PATH
z jakiegoś powodu nie działa, tzn~
. Zamiast tego należy użyć znaku.Odnośnie
~/bin
i poleceń / programów dostępnych tylko dla użytkownikaNajnowsze wersje Ubuntu zawierają
~/bin
katalog w twoim$PATH
, ale tylko jeśli~/bin
katalog istnieje.Jeśli nie istnieje:
Upewnij się, że
~/.profile
zawiera następujące zwrotki (domyślnie~/.profile
już tak jest):Utwórz
~/bin
katalog:Uruchom ponownie komputer lub wymuś ponowne przeczytanie przez bash
~/.profile
:źródło
exec -l bash
wskazówkę”. Co robi-l
flaga? Nie znajduję wyjaśnienia wman exec
.exec -l
wykona bash jako powłokę logowania [ wiki.bash-hackers.org/commands/builtin/exec] . Krótko mówiąc, zmusza bash do ponownego przeczytania/etc/profile
i~/.profile
. Tylko uruchomienieexec bash
spowoduje tylko ponowne przeczytanie~/.bashrc
.