Jakie są domyślne wartości $ PATH?


Odpowiedzi:


18

W domyślnej instalacji Ubuntu na pulpicie $PATH:

$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Ale w minimalnym środowisku chroot utworzonym przez debootstrap, $PATHzawiera tylko:

# echo $PATH
/usr/sbin:/usr/bin:/sbin:/bin

5

Wartości ścieżki środowiska są przechowywane w pliku .bashrc w Ubuntu.

Ogólnosystemowa zmienna PATH jest zdefiniowana w /etc/environment


3

Są powłoki wbudowane w powłoki

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Zatem domyślna ścieżka dla Ubuntu to:

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

3

Jest łatwy sposób, aby dowiedzieć się:

printenv

Lub bardziej bezpośrednio:

echo $PATH

Ale jeśli szukasz tylko szybkich informacji, Ubuntu zazwyczaj ustawia ścieżkę do:

/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / bin / X11: / usr / games:

W przypadku takich pytań zazwyczaj można odszukać odpowiedź, czytając Biblię .


2

W zależności od używanego systemu Linux może być inaczej. Jeśli masz już login do systemu Linux, po prostu wpisz „env”, aby zobaczyć zmienne środowiskowe.

Jeśli chcesz wiedzieć, w jaki sposób budowana jest zmienna PATH env, spójrz na .bashrc i .bash_profile w swoim katalogu domowym. Jeśli jesteś bardziej ciekawy, możesz również spojrzeć na / etc / profile, /etc/profile.d/* (jeśli istnieje) i podręcznik dla bash (man bash).


2

bashustawi PATHstałą wartość domyślną, jeśli nie jest ustawiona w środowisku:

$ env -i bash -c 'echo $PATH'
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.

Możemy sprawdzić, czy ta wartość jest rzeczywiście zakodowana na stałe i nie jest odczytywana ze środowiska lub jakiegoś pliku, za pomocą stringsnarzędzia:

$ strings /bin/bash | grep /usr/sbin
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.

Otrzymuję jednak inny wynik na moim komputerze Arch Linux:

$ env -i bash -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/bin

Wygląda więc na to, że ta domyślna opcja jest wybierana w momencie bashbudowania pliku binarnego, co zależy od używanej dystrybucji Linuksa.


To jedyna odpowiedź, która wspomina o powłoce i dystrybucjach. Natknąłem się na to pytanie, ponieważ rozwiązuję problemy ze ŚCIEŻKĄ w kontenerach Ubuntu. A „domyślna ścieżka” będzie zależeć od powłoki (bash, sh itp.) Oraz od tego, czy zostanie załadowana interaktywnie, czy nie, oraz od tego, czy jest to powłoka logowania. To nie jest prosta odpowiedź. Wyrazy uznania za napisane na stałe ciągi w pliku binarnym.
init_js

1

Aby zobaczyć domyślną ścieżkę, użyj innych wymienionych w odpowiedziach:

echo $PATH

Aby edytować użyj:

gedit ~/.bashrc

Ta PATHzmienna domyślna jest zdefiniowana w /etc/enviroment.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.