Jak na stałe ustawić $PATH Na Linux / Unix? [zamknięte]
Zamknięte. to pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi.
Chcesz poprawić to pytanie? Update the pytanie więc to on-topic dla przepełnienia stosu.
Zamknięte 7 miesięcy temu .
Popraw to pytaniePróbuję dodać katalog do mojej ścieżki, aby zawsze był w mojej ścieżce Linuksowej. Próbowałem:
export PATH=$PATH:/path/to/dir
To działa, jednak za każdym razem, gdy opuszczam terminal i uruchamiam nowy terminal przykład, ta ścieżka jest utracona i muszę ponownie uruchomić polecenie Eksportuj.
Jak mogę to zrobić, aby to zostało ustawione na stałe?
24 answers
Jest na to wiele sposobów. Rzeczywiste rozwiązanie zależy od celu.
Wartości zmiennych są zwykle przechowywane na liście zadań lub w skrypcie powłoki uruchamianym na początku sesji systemu lub użytkownika. W przypadku skryptu powłoki należy użyć określonej składni powłoki oraz poleceń export
lub set
.
System wide
-
/etc/environment
Lista unikalnych przydziałów, pozwala na referencje. Idealny do dodawania katalogów systemowych takich jak/usr/local/something/bin
doPATH
zmienna lub definiującaJAVA_HOME
. Używany przez PAM i SystemD. -
/etc/environment.d/*.conf
Lista unikalnych zadań, pozwala na referencje. Idealny do dodawania katalogów systemowych, takich jak/usr/local/something/bin
do zmiennejPATH
lub definiowanieJAVA_HOME
. Konfigurację można podzielić na wiele plików, zazwyczaj po jednym dla każdego narzędzia (Java, Go, NodeJS). Używane przez SystemD, które z założenia nie przekazują tych wartości do powłoki logowania użytkownika. -
/etc/xprofile
skrypt powłoki wykonywany podczas uruchamiania sesji X Window System. To jest bieg dla każdego użytkownik logujący się do X Window System. Jest to dobry wybór dlaPATH
wpisy, które są ważne dla każdego Użytkownika jak/usr/local/something/bin
. Plik jest dołączany przez inny skrypt, więc używaj składni powłoki POSIX, a nie składni powłoki użytkownika. -
/etc/profile
i/etc/profile.d/*
skrypt powłoki. Jest to dobry wybór dla Systemów tylko powłoki. Pliki te są odczytywane tylko przez powłoki w trybie logowania. -
/etc/<shell>.<shell>rc
. Skrypt powłoki. Jest to zły wybór, ponieważ jest specyficzny dla pojedynczej powłoki. Używany w trybie bez logowania.
Użytkownik sesja
-
~/.pam_environment
. Lista unikalnych zadań, bez odniesień. Ładowane przez PAM na początku każdej sesji użytkownika nie ma znaczenia, czy jest to sesja X Window System czy powłoka. Nie można odwoływać się do innych zmiennych, w tymHOME
lubPATH
, więc ma ograniczone zastosowanie. Używany przez PAM. -
~/.xprofile
skrypt powłoki. Jest to wykonywane, gdy użytkownik loguje się do systemu X Window System. Zdefiniowane tutaj zmienne są widoczne dla każdej aplikacji X. Doskonały wybór do przedłużaniaPATH
z wartości takie jak~/bin
lub~/go/bin
lub definiowanie specyficznych dla użytkownikaGOPATH
lubNPM_HOME
. Plik jest dołączany przez inny skrypt, więc używaj składni powłoki POSIX, a nie składni powłoki użytkownika. Twój graficzny edytor tekstu lub IDE uruchomiony skrótem zobaczy te wartości. -
~/.profile
,~/.<shell>_profile
,~/.<shell>_login
skrypt powłoki. Będzie on widoczny tylko dla programów uruchamianych z terminala lub emulatora terminala. Jest to dobry wybór dla Systemów tylko powłoki. Używany przez powłoki w trybie logowania. -
~/.<shell>rc
. Skrypt powłoki. To jest kiepski wybór, ponieważ jest specyficzny dla pojedynczej powłoki. Używany przez powłoki w trybie bez logowania.
Uwagi
Gnome na Wayland uruchamia powłokę logowania użytkownika, aby uzyskać środowisko. Skutecznie wykorzystuje konfiguracje powłoki logowania ~/.profile
, ~/.<shell>_profile
, ~/.<shell>_login
pliki.
Instrukcje
- środowisko
- środowisko.d
- bash
- dash
Specyficzne dla dystrybucji dokumentacja
Powiązane
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-31 06:04:23
Musisz dodać go do pliku ~/.profile
lub ~/.bashrc
.
export PATH="$PATH:/path/to/dir"
W zależności od tego, co robisz, możesz również chcieć dowiązać symbolicznie do binariów:
cd /usr/bin
sudo ln -s /path/to/binary binary-name
Pamiętaj, że nie będzie to automatycznie aktualizować ścieżki do końca sesji. aby to zrobić, należy uruchomić:
source ~/.profile
or
source ~/.bashrc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-27 23:25:22
W Ubuntu edycja /etc/environment
. Jego jedynym celem jest przechowywanie zmiennych środowiskowych. Pierwotnie zdefiniowana jest tutaj zmienna $PATH.
To jest wklejka z mojego pliku /etc/environment
:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Więc możesz po prostu otworzyć ten plik jako root i dodać cokolwiek chcesz.
Dla natychmiastowych wyników, Run (try as normal user and root):
source /etc/environment && export PATH
UPDATE:
Jeśli używasz zsh
(a.k.A Z Shell), dodaj tę linię zaraz po komentarzach w /etc/zsh/zshenv
:
source /etc/environment
I na Ubuntu 15.10 napotkałem ten mały dziwak, ale jeśli twój zsh nie otrzymuje poprawnej ścieżki , Może to być powód
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-08 07:35:31
Umieść deklarację export
w ~/.bashrc
. Ojej .bashrc Zawiera to:
export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-01 00:59:39
Możesz ustawić $PATH
na stałe na 2 sposoby.
-
Aby ustawić ścieżkę dla konkretnego użytkownika : Może być konieczne dokonanie wpisu w
.bash_profile
w katalogu domowym użytkownika.np. w moim przypadku ustawię ścieżkę Javy w profilu użytkownika tomcat
[tomcat]$ echo "export PATH=$PATH:/path/to/dir" >> /home/tomcat/.bash_profile
-
Aby ustawić wspólną ścieżkę dla wszystkich użytkowników systemu, może być konieczne ustawienie ścieżki w następujący sposób:
[root~]# echo "export PATH=$PATH:/path/to/dir" >> /etc/profile
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-25 16:54:14
Możesz użyć na Centos lub RHEL dla użytkownika lokalnego:
echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile
To dodaje bieżący katalog (lub możesz użyć innego katalogu) do ścieżki, to czyni go stałym, ale działa przy następnym logowaniu użytkownika.
Jeśli nie chcesz zrobić ponownego logowania, możesz użyć:
source ~/.bash_profile
That reload the # User specific environment and startup programs
this comment is present in .bash_profile
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 04:11:17
Można również ustawić na stałe, edytując jeden z tych plików:
/etc/profile
(dla wszystkich użytkowników)
~/.bash_profile
(dla bieżącego użytkownika)
~/.bash_login
(dla bieżącego użytkownika)
~/.profile
(dla bieżącego użytkownika)
Możesz również użyć /etc/environment
do Ustawienia stałej zmiennej środowiskowej PATH, ale nie obsługuje ona rozszerzenia zmiennej.
Pobrano z: http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-14 18:58:12
Myślę, że najbardziej elegancki sposób to:
1.dodaj to w~/.plik bashrc Uruchom to polecenie
Gedit ~/.bashrc
Dodaj swoją ścieżkę wewnątrz
Export PATH=$PATH:/opt / node / bin
2.źródło~/.bashrc
(Ubuntu)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-07 05:51:40
Natknąłem się wczoraj na to pytanie, szukając sposobu na dodanie folderu zawierającego moje własne skrypty do ścieżki - i byłem zaskoczony, że mój własny plik ~/.profile
(W Linux Mint 18.1) już to zawierał:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Tak więc, wszystko co musiałem zrobić, to stworzyć folder ~/bin
i umieścić tam moje Skrypty.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-04 11:09:57
1.zmodyfikuj plik "/etc / profile".
#vi /etc/profile
Naciśnij klawisz "i", aby wprowadzić status edycji i przesuń kursor na koniec pliku, dodatkowe wpisy:
export PATH=$PATH:/path/to/dir;
Naciśnij klawisz" Esc " Zakończ edycję statusu,': wq' zapisz plik.
2.Make configuration effective
source /etc/profile
Wyjaśnij: plik profilu działa dla wszystkich użytkowników, jeśli chcesz być ważny tylko dla aktywnego użytkownika, ustaw ".bashrc " plik
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-23 09:24:45
Możesz dodać tę linię do pliku konfiguracyjnego konsoli (np.bashrc), lub do .profil
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-01 00:59:22
Dodaj do /etc/profile.d
skrypt katalogu [name_of_script].sh
z linią: export PATH=$PATH:/dir
. Każdy skrypt w folderze /etc/profile.d
jest automatycznie uruchamiany przez /etc/profile
przy logowaniu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-10 12:12:15
Moja odpowiedź dotyczy założenia go-lang
na Ubuntu linux/amd64
.Miałem ten sam problem z ustawianiem ścieżki zmiennych środowiskowych (GOPATH
i GOBIN
), tracąc ją przy wyjściu z terminala i przebudowując za każdym razem przy użyciu source <file_name>
.Błąd polegał na umieszczeniu ścieżki (GOPATH
i GOBIN
) w folderze ~/.bash_profile
. Po zmarnowaniu kilku dobrych godzin odkryłem, że rozwiązaniem było umieszczenie GOPATH
i GOBIN
w~/.bash_rc
pliku w sposób:
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOPATH:$GOBIN
I robiąc to, instalacja go działała dobrze i tam nie było strat na drodze.
Edycja 1:
Powodem, dla którego ten problem może być związany jest to, że ustawienia dla powłok bez logowania, takich jak Terminal ubuntu lub gnome-terminal, w którym uruchamiamy kod go, są pobierane z pliku ~./bash_rc
, A ustawienia dla powłok logowania są pobierane z pliku ~/.bash_profile
i z pliku ~/.profile
, Jeśli plik ~/.bash_profile
jest nieosiągalny.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-04 21:38:21
Po tak wielu badaniach znalazłem na to proste rozwiązanie (używam elementary OS), zainspirowane następującym linkiem .
Uruchom następujące polecenie, aby otworzyć .plik bashrc w trybie edycji . [Ty może również używać vi lub dowolnego innego edytora].
~$ sudo nano ~/.bashrc
Dodaj następujący wiersz na końcu pliku i zapisz.
export PATH="[FLUTTER_SDK_PATH]/flutter/bin:$PATH"
Na Przykład:
export PATH="/home/rageshl/dev/flutter/bin:$PATH"
Wierzę, że to jest permanent rozwiązanie do ustawiania ścieżki w flutter w dystrybucji Ubuntu
Mam nadzieję, że to pomoże.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-10 10:27:46
Jednym ze sposobów na dodanie stałej ścieżki, która mi się sprawdziła, jest:
cd /etc/profile.d
touch custom.sh
vi custom.sh
export PATH=$PATH:/path according to your setting/
Uruchom ponownie komputer i zaczynamy; path będzie tam na stałe.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-01 13:19:43
Pliki, do których dodajesz polecenie export, zależą od tego, czy jesteś w trybie logowania, czy nie.
Jeśli jesteś w trybie logowania, pliki, których szukasz to /etc /bash lub/etc / bash.bashrc
Jeśli jesteś w trybie bez logowania, szukasz pliku /.profil lub dla plików w katalogu/.profile.d
Plików wymienionych powyżej, jeśli Gdzie są zmienne systemowe.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-05 13:35:33
Permanentnie dodaj zmienną ścieżki
Globalny:
echo "export PATH=$PATH:/new/path/variable" >> /etc/profile
Local (tylko dla użytkownika):
echo "export PATH=$PATH:/new/path/variable" >> ~/.profile
For global restart. Dla lokalnego relogin.
Przykład
Przed:
$ cat /etc/profile
#!/bin/sh
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
Po:
$ cat /etc/profile
#!/bin/sh
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable
Możesz też edytować profil:
$ cat /etc/profile
#!/bin/sh
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable
Another way (thanks gniourf_gniourf):
echo 'PATH=$PATH:/new/path/variable' >> /etc/profile
Nie powinieneś używać podwójnych cudzysłowów! echo " eksport PATH = $PATH: / new/path / variable'... A tak przy okazji, słowo kluczowe export jest bardzo prawdopodobne bezużyteczne, ponieważ zmienna PATH jest bardzo prawdopodobne już oznaczone jako eksportowane. - gniourf_gniourf
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-14 18:19:11
Zues77 ma rację. Operacja nie powiedziała "Jak mogę się przez to przebić". OP chciał wiedzieć jak na stałe dołączyć do $PATH:
sudo nano /etc/profile
Tutaj jest ustawiony dla wszystkiego i jest najlepszym miejscem, aby zmienić go dla wszystkich rzeczy wymagających $PATH
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-25 02:26:23
Załóżmy, że używasz systemu MacOS i masz zaufany plik binarny, który chcesz udostępnić w całym systemie, ale niekoniecznie chcesz, aby katalog, w którym plik binarny ma zostać dodany do twojej ścieżki, możesz skopiować / przenieść plik binarny do /usr/local/bin
, który powinien już być w twojej ścieżce. Spowoduje to, że plik binarny będzie wykonywalny jak każdy inny plik binarny, do którego możesz już mieć dostęp w terminalu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-04 13:25:26
Można go bezpośrednio dodać za pomocą następującego polecenia:
echo 'export PATH=$PATH:/new/directory' >> ~/.zshrc
source ~/.zshrc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-17 12:06:50
Najlepszy prosty sposób jest następujący wiersz:PATH="<directory you want to include>:$PATH"
w Twoim .plik bashrc w katalogu domowym.
nie zostanie zresetowany, nawet jeśli zamkniesz terminal lub zrestartujesz komputer. Its permanent
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-04 16:38:30
Myślę, że najbardziej elegancki sposób to:
1.dodaj to w ~./ bashrc plik
if [ -d "new-path" ]; then
PATH=$PATH:new-path
fi
2.źródło ~/.bashrc
(Ubuntu)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-17 02:50:27
Jest to jednowarstwowa . Dodaje linię do .bashrc
. THA line sprawdzi, czy katalog został już dodany do ścieżki i dopisze, jeśli nie. Zapobiegnie to powielaniu katalogu w ścieżce za każdym razem, gdy źródło .bashrc
.
echo "[[ \":\$PATH:\" != *\":$(pwd)/path/to/add:\"* ]] && export PATH=\"\${PATH:+\${PATH}}:$(pwd)/path/to/add\"" >> ~/.bashrc
source ~/.bashrc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-01 11:08:15
Dla dystrybucji Debiana, musisz:
- edit
~/.bashrc
np:vim ~/.bashrc
- dodaj
export PATH=$PATH:/path/to/dir
Następnie uruchom ponownie komputer. Pamiętaj, że jeśli edytujesz
~/.bashrc
jako root, dodana zmienna środowiskowa będzie działać tylko dla root
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-01 13:27:53