Jak dodać katalog do $PATH
Ubuntu i wprowadzić zmiany na stałe?
environment-variables
justingrif
źródło
źródło
Odpowiedzi:
Użycie ~ / .profile, aby ustawić $ PATH
Ścieżka ustawiona w
.bash_profile
zostanie ustawiona tylko w powłoce logowania bash (bash -l
). Jeśli podasz swoją ścieżkę.profile
, będzie dostępna dla całej sesji pulpitu. Oznacza to, że nawet metacity go wykorzysta.Na przykład
~/.profile
:Przy okazji możesz sprawdzić zmienną PATH procesu, patrząc na jego środowisko
/proc/[pid]/environ
(zastąp [pid] liczbą odps axf
). Np. Użyjgrep -z "^PATH" /proc/[pid]/environ
Uwaga:
bash
ponieważ powłoka logowania nie analizuje.profile
,.bash_profile
czy.bash_login
istnieje lub istnieje. Odman bash
:Zobacz odpowiedzi poniżej informacje na temat
.pam_environment
, czy.bashrc
dla powłok interaktywnych bez logowania, lub ustawić wartość globalnie dla wszystkich użytkowników poprzez umieszczenie skryptu do/etc/profile.d/
lub korzystania/etc/X11/Xsession.d/
wpływać na sesję menedżera wyświetlania.źródło
PATH="$HOME/bin:$PATH"
Więc dodaję go?Edytuj
.bashrc
w swoim katalogu domowym i dodaj następujący wiersz:Musisz wprowadzić swoje dane
.bashrc
lub wylogować się / zalogować (lub ponownie uruchomić terminal), aby zmiany zostały wprowadzone. Aby uzyskać źródło.bashrc
, po prostu wpiszźródło
.bashrc
”? Jak „ponownie uruchomić terminal”?.bashrc
nie jest właściwym miejscem do ustawiania zmiennych środowiskowych. Powinny wejść.profile
lub.pam_environment
. Zobacz mywiki.wooledge.org/DotFiles. .bashrc
nie.bashrc
:) czysource .bashrc
o to chodziZalecane miejsce do zdefiniowania stałych, ogólnosystemowych zmiennych środowiskowych mających zastosowanie do wszystkich użytkowników to:
(gdzie
PATH
zdefiniowane jest ustawienie domyślne )Będzie to działać na komputerze stacjonarnym lub konsoli, gnome-terminal lub TTY, deszcz lub połysk;)
Aby edytować, naciśnij Alt+ F2i wpisz:
(lub otwórz plik za pomocą
sudo
swojego ulubionego edytora tekstu)Aby wprowadzić zmiany, uruchom
. /etc/environment
. Ponieważ ten plik jest prostym skryptem, zostanie uruchomiony i przypisze nową ścieżkę doPATH
zmiennej środowiskowej. Aby sprawdzić, uruchom env i zobaczPATH
wartość na liście.Związane z:
źródło
source /etc/environment
aby ponownie załadować zmianyMyślę, że kanonicznym sposobem w Ubuntu jest:
utwórz nowy plik pod
/etc/profile.d/
dodaj tam:
i zezwolić na wykonanie
źródło
Dla kompletnych początkujących (tak jak ja), którzy czują się bardziej komfortowo z GUI:
$HOME
folder..profile
i kliknij polecenie Otwórz za pomocą edytora tekstu .PATH="$PATH:/my/path/foo"
..profile
).źródło
$PATH:
bit, który zawiera istniejącą definicję ŚCIEŻKIDla trwałych zmiennych środowiskowych dostępnych tylko dla konkretnych użytkowników. Bardzo polecam oficjalną dokumentację Ubuntu.
https://help.ubuntu.com/community/EnvironmentVariables
Nawiązując do powyższej dokumentacji, skonfigurowałem narzędzia ścieżki SDK systemu Android poprzez:
~/.pam_environment
pliku w katalogu domowym.PATH DEFAULT=${PATH}:~/android-sdk-linux/tools
.źródło
Umieść tę linię w swoim
~/.bashrc
pliku.Pozyskiwany jest za każdym razem, gdy otwierasz terminal
EDYCJA : W oparciu o poniższe komentarze, aby uzyskać bardziej ogólne ustawienie, które będzie obowiązywać dla wszystkich powłok (w tym po wciśnięciu Alt- F2w Unity), dodaj linię do
~/.profile
pliku. Prawdopodobnie nie powinno to robić obu, ponieważ ścieżka zostanie dodana dwukrotnie doPATH
środowiska, jeśli otworzysz terminal.źródło
$HOME/.profile
dla ustawień osobistych lub/etc/profile
dla wszystkich użytkowników. Ale jeśli jest to potrzebne tylko do bash, przypuszczam, że albo zadziała.~/.bashrc
, będzie dostępny tylko w otwartych terminalach. Np. Jeśli naciśniesz Alt + F2 i spróbujesz uruchomić polecenie z tego katalogu, nie znajdzie go. Jeśli ustawisz go w~/.profile
lub~/.pam_environment
, sesja gnome (lub którykolwiek DE użyjesz) odziedziczy go. Dołączenie PATH~/.bashrc
ma również tę wadę, że jeśli otworzysz / wykonasz bash interaktywnie z innej interaktywnej powłoki bash, zostanie on dodany wiele razy.~/.profile
właściwe są ścieżki osobiste; tam Ubuntu dodaje~/bin
katalog. Przyznaję, że trochę przesadziłem na wiele sposobów - tylko trochę.~/.profile
w tym przypadku.Aby ustawić na cały system, dołącz linię
export PATH=/path/you're/adding:$PATH
na końcu/etc/profile
.Aby dodać katalog tylko dla zalogowanego użytkownika, dodaj tę samą linię do
~/.bash_profile
.źródło
Dodanie go do .bashrc będzie działać, ale myślę, że bardziej tradycyjny sposób konfigurowania zmiennych ścieżki to .bash_profile poprzez dodanie następujących linii.
Zgodnie z tym wątkiem wydaje się, że zachowanie Ubuntu jest nieco inne niż RedHat i klony.
źródło
.bashrc
, włóż.bashrc
zamiast tego. Terminale GUI w Ubuntu nie są powłokami logowania, więc.bash_profile
nie będą uruchamiane..bash_profile
. Jeśli bash nie znajdzie.bash_profile
(gdy logujesz się interaktywnie), poszuka go.profile
i użyje zamiast tego. Domyślnie będziesz mieć.profile
iw.bashrc
Ubuntu. I.profile
jest właściwym miejscem do ustawienia zmiennych środowiskowych, jeśli pominiemy pam_env.W terminalu
cd
dothe_directory_you_want_to_add_in_the_path
To nie był mój pomysł. Znalazłem ten sposób na eksport ścieżki na tym blogu tutaj .
źródło
dodaj tam
źródło
sudo nano /etc/profile.d/SCRIPT_NAME.sh
jest łatwiejszy dla początkujących.gksu gedit /etc/profile.d/SCRIPT_NAME.sh
jest jeszcze łatwiejsze.Ilekroć „instaluję” mój folder skryptów BASH, wykonuję test testu dla
$HOME/bin
folderu, który zawiera większość plików .profile w najnowszych wersjach Ubuntu. Ustawiam test, który wyglądaDziała tylko około 100% czasu i pozwala mi go zmieniać w edytorze tekstowym GUI z szybkim „Zamień wszystko”, jeśli kiedykolwiek zdecyduję się przenieść
/scripts
gdzieś bliżej mojego$HOME
folderu. Nie zrobiłem tego w 6 instalacjach Ubuntu, ale jest „zawsze jutro”. S.BZT
źródło
Zalecany sposób edycji
PATH
to z/etc/environment
plikuPrzykładowe dane wyjściowe
/etc/environment
:Na przykład, aby dodać nową ścieżkę
/home/username/mydir
Następnie uruchom ponownie komputer.
Więcej informacji można znaleźć tutaj: EnvironmentVariables
źródło
Otwórz terminal, wpisz
gedit .profile
i wstaw następujące dane:Zamknij i otwórz terminal, powinien działać.
źródło
Umieść go na swoim
~/.bashrc
lub w Whatsvershell, którego używasz rc (lub wcześniej wspomnianym~/.profile
) ORAZ~/.xsessionrc
tak, aby działał również w X (poza powłoką).źródło
Nawet jeśli skrypty systemowe tego nie używają, w żadnym z przypadków, w których chce się dodać ścieżkę (np.
$HOME/bin
) Do zmiennej środowiskowej PATH, należy użyćdo dołączania (zamiast
PATH="$PATH:$HOME/bin"
) ido dodawania (zamiast
PATH="$HOME/bin:$PATH"
).Pozwala to uniknąć fałszywego wiodącego / końcowego okrężnicy, gdy
$PATH
jest początkowo pusty, co może mieć niepożądane skutki.Patrz np. Https://unix.stackexchange.com/questions/162891/append-to-path-like-variable-without-creating-leading-colon-if-unset
źródło
W systemie Ubuntu dokonaj edycji
~/.bashrc
i dodaj następujący wiersz.. ~/.bash_profile
Następnie zmodyfikuj plik .bash_profile, jeśli potrzebujesz .....
źródło
.bash_profile
jak potrzebujesz”. Co dokładnie muszę zrobić z.bash_profile
?.profile
lub.bash_profile
powinien źródło.bashrc
. Nie na odwrót.