Jak dodać katalog do $PATH
Ubuntu i wprowadzić zmiany na stałe?
Jak dodać katalog do $PATH
Ubuntu i wprowadzić zmiany na stałe?
Odpowiedzi:
Ś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
:
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
bash
ponieważ powłoka logowania nie analizuje .profile
, .bash_profile
czy .bash_login
istnieje 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 .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.
PATH="$HOME/bin:$PATH"
Więc dodaję go?
Edytuj .bashrc
w swoim katalogu domowym i dodaj następujący wiersz:
export PATH="/path/to/dir:$PATH"
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
$ source ~/.bashrc
.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
:) czy source .bashrc
o to chodzi
Zalecane miejsce do zdefiniowania stałych, ogólnosystemowych zmiennych środowiskowych mających zastosowanie do wszystkich użytkowników to:
/etc/environment
(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:
gksudo gedit /etc/environment
(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ę do PATH
zmiennej środowiskowej. Aby sprawdzić, uruchom env i zobacz PATH
wartość na liście.
Związane z:
source /etc/environment
aby 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:
$HOME
folder..profile
i 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_environment
pliku w katalogu domowym.PATH DEFAULT=${PATH}:~/android-sdk-linux/tools
.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 do PATH
środowiska, jeśli otworzysz terminal.
$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
.
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łóż .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
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.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ą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ść /scripts
gdzieś bliżej mojego $HOME
folderu. Nie zrobiłem tego w 6 instalacjach Ubuntu, ale jest „zawsze jutro”. S.
BZT
Zalecany sposób edycji PATH
to z /etc/environment
pliku
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 .profile
i 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 $PATH
jest początkowo pusty, co może mieć niepożądane skutki.
W systemie Ubuntu dokonaj edycji ~/.bashrc
i dodaj następujący wiersz.
. ~/.bash_profile
Następnie zmodyfikuj plik .bash_profile, jeśli potrzebujesz .....
.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.