Jak dodać katalog do $PATHUbuntu i wprowadzić zmiany na stałe?
Jak dodać katalog do $PATHUbuntu i wprowadzić zmiany na stałe?
Odpowiedzi:
Ścieżka ustawiona w .bash_profilezostanie 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:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
Przy okazji możesz sprawdzić zmienną PATH procesu, patrząc na jego środowisko /proc/[pid]/environ(zastąp [pid] liczbą od ps axf). Np. Użyjgrep -z "^PATH" /proc/[pid]/environ
bashponieważ powłoka logowania nie analizuje .profile, .bash_profileczy .bash_loginistnieje lub istnieje. Od man bash:
szuka ~ / .bash_profile, ~ / .bash_login i ~ / .profile, w tej kolejności oraz odczytuje i wykonuje polecenia z pierwszego, który istnieje i jest czytelny.
Zobacz odpowiedzi poniżej informacje na temat .pam_environment, czy .bashrcdla 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.
PATH="$HOME/bin:$PATH"Więc dodaję go?
Edytuj .bashrcw swoim katalogu domowym i dodaj następujący wiersz:
export PATH="/path/to/dir:$PATH"
Musisz wprowadzić swoje dane .bashrclub wylogować się / zalogować (lub ponownie uruchomić terminal), aby zmiany zostały wprowadzone. Aby uzyskać źródło .bashrc, po prostu wpisz
$ source ~/.bashrc
.bashrc”? Jak „ponownie uruchomić terminal”?
.bashrcnie jest właściwym miejscem do ustawiania zmiennych środowiskowych. Powinny wejść .profilelub .pam_environment. Zobacz mywiki.wooledge.org/DotFiles
. .bashrcnie .bashrc:) czy source .bashrco to chodzi
Zalecane miejsce do zdefiniowania stałych, ogólnosystemowych zmiennych środowiskowych mających zastosowanie do wszystkich użytkowników to:
/etc/environment
(gdzie PATHzdefiniowane 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:
gksudo gedit /etc/environment
(lub otwórz plik za pomocą sudoswojego ulubionego edytora tekstu)
Aby wprowadzić zmiany, uruchom . /etc/environment. Ponieważ ten plik jest prostym skryptem, zostanie uruchomiony i przypisze nową ścieżkę do PATHzmiennej środowiskowej. Aby sprawdzić, uruchom env i zobacz PATHwartość na liście.
Związane z:
source /etc/environmentaby ponownie załadować zmiany
Myślę, że kanonicznym sposobem w Ubuntu jest:
utwórz nowy plik pod /etc/profile.d/
sudo vi /etc/profile.d/SCRIPT_NAME.sh
dodaj tam:
export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
i zezwolić na wykonanie
sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
Dla kompletnych początkujących (tak jak ja), którzy czują się bardziej komfortowo z GUI:
$HOMEfolder..profilei kliknij polecenie Otwórz za pomocą edytora tekstu .PATH="$PATH:/my/path/foo"..profile).$PATH:bit, który zawiera istniejącą definicję ŚCIEŻKI
Dla 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_environmentpliku w katalogu domowym.PATH DEFAULT=${PATH}:~/android-sdk-linux/tools.Umieść tę linię w swoim ~/.bashrcpliku.
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 ~/.profilepliku. Prawdopodobnie nie powinno to robić obu, ponieważ ścieżka zostanie dodana dwukrotnie do PATHśrodowiska, jeśli otworzysz terminal.
$HOME/.profiledla ustawień osobistych lub /etc/profiledla 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 ~/.profilelub ~/.pam_environment, sesja gnome (lub którykolwiek DE użyjesz) odziedziczy go. Dołączenie PATH ~/.bashrcma również tę wadę, że jeśli otworzysz / wykonasz bash interaktywnie z innej interaktywnej powłoki bash, zostanie on dodany wiele razy.
~/.profilewłaściwe są ścieżki osobiste; tam Ubuntu dodaje ~/binkatalog. Przyznaję, że trochę przesadziłem na wiele sposobów - tylko trochę.
~/.profilew tym przypadku.
Aby ustawić na cały system, dołącz linię export PATH=/path/you're/adding:$PATHna końcu /etc/profile.
Aby dodać katalog tylko dla zalogowanego użytkownika, dodaj tę samą linię do ~/.bash_profile.
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.
PATH=$PATH:/my/path/foo
export PATH
Zgodnie z tym wątkiem wydaje się, że zachowanie Ubuntu jest nieco inne niż RedHat i klony.
.bashrc, włóż .bashrczamiast tego. Terminale GUI w Ubuntu nie są powłokami logowania, więc .bash_profilenie będą uruchamiane.
.bash_profile. Jeśli bash nie znajdzie .bash_profile(gdy logujesz się interaktywnie), poszuka go .profilei użyje zamiast tego. Domyślnie będziesz mieć .profileiw .bashrcUbuntu. I .profilejest właściwym miejscem do ustawienia zmiennych środowiskowych, jeśli pominiemy pam_env.
W terminalu cddothe_directory_you_want_to_add_in_the_path
echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc
To nie był mój pomysł. Znalazłem ten sposób na eksport ścieżki na tym blogu tutaj .
sudo vi /etc/profile.d/SCRIPT_NAME.sh
dodaj tam
export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
sudo nano /etc/profile.d/SCRIPT_NAME.shjest łatwiejszy dla początkujących.
gksu gedit /etc/profile.d/SCRIPT_NAME.shjest jeszcze łatwiejsze.
Ilekroć „instaluję” mój folder skryptów BASH, wykonuję test testu dla $HOME/binfolderu, który zawiera większość plików .profile w najnowszych wersjach Ubuntu. Ustawiam test, który wygląda
if [ -d "/usr/scripts" ]; then
PATH="/usr/scripts:$PATH"
fi
Dział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ść /scriptsgdzieś bliżej mojego $HOMEfolderu. Nie zrobiłem tego w 6 instalacjach Ubuntu, ale jest „zawsze jutro”. S.
BZT
Zalecany sposób edycji PATHto z /etc/environmentpliku
Przykładowe dane wyjściowe /etc/environment:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Na przykład, aby dodać nową ścieżkę /home/username/mydir
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"
Następnie uruchom ponownie komputer.
Zmienne środowiskowe dla całego systemu
Odpowiednim plikiem dla ustawień zmiennych środowiskowych, które wpływają na system jako całość (a nie tylko konkretnego użytkownika) jest / etc / environment. Alternatywą jest utworzenie pliku do tego celu w katalogu /etc/profile.d.
/ etc / environment
Ten plik jest przeznaczony specjalnie dla systemowych ustawień zmiennych środowiskowych. To nie jest plik skryptu, ale raczej składa się z wyrażeń przypisania, po jednym w wierszu.
Uwaga: Rozszerzenie zmienne nie działa w / etc / environment.
Więcej informacji można znaleźć tutaj: EnvironmentVariables
Otwórz terminal, wpisz gedit .profilei wstaw następujące dane:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
#the following line add Bin where you dont have a Bin folder on your $HOME
PATH="$PATH:/home/mongo/Documents/mongodb-linux-i686-2.2.2/bin"
Zamknij i otwórz terminal, powinien działać.
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ć
PATH="${PATH:+${PATH}:}$HOME/bin"
do dołączania (zamiast PATH="$PATH:$HOME/bin") i
PATH="$HOME/bin${PATH:+:${PATH}}"
do dodawania (zamiast PATH="$HOME/bin:$PATH").
Pozwala to uniknąć fałszywego wiodącego / końcowego okrężnicy, gdy $PATHjest początkowo pusty, co może mieć niepożądane skutki.
W systemie Ubuntu dokonaj edycji ~/.bashrci dodaj następujący wiersz.
. ~/.bash_profile
Następnie zmodyfikuj plik .bash_profile, jeśli potrzebujesz .....
.bash_profilejak potrzebujesz”. Co dokładnie muszę zrobić z .bash_profile?
.profilelub .bash_profilepowinien źródło .bashrc. Nie na odwrót.