Jakie polecenie próbujesz uruchomić? Czy próbujesz znaleźć polecenie, które jest na twojej drodze?
DavidPostill
@DavidPostill Myślę, że on pisze $PATHi wykonuje bezpośrednio .
Rakholiya Jenish
1
@RakholiyaJenish Tak, to jasne. Ale dlaczego on to robi? Co on naprawdę próbuje zrobić?
DavidPostill
Myślę, że próbujesz uciec echo $PATH?
xuhdev,
Odpowiedzi:
2
PATH to zmienna środowiskowa w systemie Linux i innych systemach operacyjnych typu Unix, która informuje powłokę, które katalogi mają wyszukiwać pliki wykonywalne (tj. Gotowe do uruchomienia programy) w odpowiedzi na polecenia wydawane przez użytkownika.
Aby zobaczyć wartość PATHzmiennej, zrób to jak echo $PATH. W twoim przypadku shposzuka pliku wykonywalnego /bini /usr/binkatalogu.
Możesz także używać swoich shpoleceń tak, /bin/commandjakby plik wykonywalny znajdował commandsię w /binkatalogu. Na przykład zamiast używać lsmożesz użyć, /bin/lsponieważ pisanie lsuruchamia plik wykonywalny lsobecny w /bin. Jeśli lsnie ma tam /bin, to zajrzy /usr/bin. Jeśli lsnadal nie zostanie znaleziony w obu katalogach, będzie narzekać.
Próbując użyć $PATHlub /bin:/usr/bin:bezpośrednio, shmyśli, że ma uruchomić binplik wykonywalny znajdujący się w katalogu /bin:/usr/. To jest powód, który daje directory or file not foundlub not foundbłąd.
Aby uzyskać szczegółowe informacje na temat ŚCIEŻKI .
Więc kiedy uruchomię to: ▶ echo $ PATH / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games: / media / HDD / Code / android-sdk-linux / plateform-tools: / media / HDD / Code / android-sdk-linux / tools Nie ma już błędów i nie ma ich
N07070
1
@ N07070 To dlatego, że PATHjest zmienną środowiskową, której używasz do drukowania $PATH. Dlatego nie będzie żadnego błędu.
$PATH
i wykonuje bezpośrednio .echo $PATH
?Odpowiedzi:
Aby zobaczyć wartość
PATH
zmiennej, zrób to jakecho $PATH
. W twoim przypadkush
poszuka pliku wykonywalnego/bin
i/usr/bin
katalogu.Możesz także używać swoich
sh
poleceń tak,/bin/command
jakby plik wykonywalny znajdowałcommand
się w/bin
katalogu. Na przykład zamiast używaćls
możesz użyć,/bin/ls
ponieważ pisaniels
uruchamia plik wykonywalnyls
obecny w/bin
. Jeślils
nie ma tam/bin
, to zajrzy/usr/bin
. Jeślils
nadal nie zostanie znaleziony w obu katalogach, będzie narzekać.Próbując użyć
$PATH
lub/bin:/usr/bin:
bezpośrednio,sh
myśli, że ma uruchomićbin
plik wykonywalny znajdujący się w katalogu/bin:/usr/
. To jest powód, który dajedirectory or file not found
lubnot found
błąd.Aby uzyskać szczegółowe informacje na temat ŚCIEŻKI .
źródło
PATH
jest zmienną środowiskową, której używasz do drukowania$PATH
. Dlatego nie będzie żadnego błędu.