Jak mogę edytować $ PATH na Linuksie?


44

Korzystam z Ubuntu 9.04. Muszę dodać jakiś folder do mojej $ PATH. Wiem, jak odczytać ścieżkę:

echo $PATH

Chcę móc go edytować i dodać 2 inne ścieżki.

Dzięki


2
Gdy będziesz w stanie to zrobić, możesz wykonać bardziej zaawansowane operacje na ŚCIEŻCE: stackoverflow.com/questions/273909/…
dmckee

Należy na stronach Unix lub Ubuntu.
Thomas Bratt

Odpowiedzi:


42

Aby trwale zapisać swoją ścieżkę, masz kilka opcji.

Sugeruję przeczytanie wiki społeczności Ubuntu na temat Zmiennych Środowiskowych, ale krótka odpowiedź jest najlepszym miejscem ~/.profilena ustawienia PATH dla użytkownika lub /etc/profileustawienia globalne.

Zrób coś takiego export PATH=$PATH:/your/new/path/here


8
Ważne jest, aby pamiętać, że wiele razy Twój profil nie jest uruchamiany (na przykład, gdy skrypt jest uruchamiany przez crona). Jeśli potrzebujesz ustawić określoną ścieżkę w PATH, skrypt musi ustawić tę ścieżkę. To powiedziawszy, skrypty nigdy nie powinny polegać na czymkolwiek znajdującym się na ich ścieżkach i zawsze powinny używać ścieżek bezwzględnych, wszystko inne jest kwestią bezpieczeństwa.
Chas. Owens

14
PATH=$PATH:newPath1:newPAth2
export PATH

3
Myślę, że możesz to wszystko zrobić w jednej linii, jeśli chcesz. eksport PATH = $ PATH: newPath1: newPAth2

2
To zależy od używanej powłoki. W systemie Solaris (wiem, że pytanie dotyczy Linuksa) jedna z powłok (nie pamiętam, która z moich głów) wymaga eksportu poza ustawieniem wartości w skrypcie. Właśnie przyzwyczaiłem się robić to na dwóch liniach.
Glen

7

Możesz również umieścić to w środowisku globalnym:

sudo emacs /etc/environment

Dołącz do wpisów już na twojej ścieżce

PATH="/path/to/file:/other/paths"

Załaduj ponownie środowisko

source /etc/environment

1
Edytowanie pliku środowiska było jedynym sposobem, aby zmusić zmienną PATH do zmiany.

2

Odpowiedzieliśmy już, jak to zrobić, ale chciałbym dać ci małą wskazówkę. Oto co robię:

Mam katalog o nazwie .bash.dw moim $HOMEi wewnątrz że trzymam zbiór skryptów powłoki, które robią rzeczy do mojego otoczenia (na przykład konfiguracji Maven poprawnie, należy zmodyfikować ścieżkę, ustaw mój szybka itd.). Utrzymuję to pod kontrolą wersji za pomocą git , co ułatwia powrót do działającej wersji env, jeśli coś źle popsuję. Aby uzyskać wszystkie modyfikacje, po prostu źródła wszystkich plików w tym katalogu na końcu mojego .bashrc w następujący sposób:

for i in $HOME/.bash.d/*; do source $i; done
unset i

Daje to bardzo elastyczne środowisko, które możesz łatwo modyfikować i przywracać + możesz eksportować je na inne komputery za pomocą git.


1

Wariant z góry, jeśli nie chcesz bezpośrednio zmieniać pliku / etc / profile. Możesz utworzyć nowy plik yourpath.sh w katalogu /etc/profile.d/ . Następnie edytuj ten plik w ten sposób. Z edytorem vim (ale możesz go edytować za pomocą innego edytora): vim /etc/profile.d/yourpath.sh

MYPATH='/your/new/path/'
export MYPATH
export PATH=$PATH:$MYPATH

: w ryt i q uit i gotowe ścieżka została zmieniona. Jeśli używasz terminala, zamknij go i otwórz ponownie. twoja nowa zmienna zostanie zaktualizowana. Teraz jest czystszy, możesz usunąć ten plik, gdy już go nie potrzebujesz i nie zakłóca początkowej konfiguracji.


(1) Tak długo, jak PATHjest eksportowany, MYPATHnie musi być (chyba że potrzebujesz go do innych celów). (2) Szybki sposób na zapisanie (zapis) i wyjście z vima to ZZ- nie :lub wymagany jest (Enter).
Scott,

0

echo ŚCIEŻKA = $ ŚCIEŻKA: ścieżka1: ścieżka2> tmp

Edytuj plik tmp za pomocą swojego ulubionego edytora tekstu, aby wartość PATH była dokładnie taka, jak chcesz

. ./tmp

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.