Jak na stałe ustawić $PATH Na Linux / Unix?
Pró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 nową instancję terminala, ścieżka ta jest tracona i muszę ponownie uruchomić polecenie export.
Jak mogę to zrobić, aby to zostało ustawione na stałe?
20 answers
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
Nie mogę uwierzyć, że nikt nie wspomniał o pliku.
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
na Ubuntu 15.10 natknąłem się na takie małe dziwactwo, ale jeśli twój zsh nie ma prawidłowej ścieżki , to może 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
2016-04-03 21:59:33
Można to zrobić na 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.
System wide
-
/etc/environment
lista unikalnych zadań. Idealny do dodawania katalogów systemowych, takich jak/usr/local/something/bin
do zmiennejPATH
lub definiowanieJAVA_HOME
. -
/etc/xprofile
skrypt powłoki wykonywany podczas uruchamiania sesji X Window System. Jest to uruchamiane dla każdego użytkownika logującego 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. Te pliki są odczytywane tylko przez powłoki. -
/etc/<shell>.<shell>rc
. Skrypt powłoki. To jest kiepski wybór, ponieważ jest specyficzny dla pojedynczej powłoki.
Sesja użytkownika
-
~/.pam_environment
. Lista unikalnych zadań. Ładowane przez PAM na początku każdej sesji użytkownika, jeśli jest to sesja X Window System lub powłoka. Nie można odwoływać się do innych zmiennych, w tymHOME
lubPATH
, więc ma ograniczone zastosowanie. -
~/.xprofile
skrypt powłoki. Jest to wykonywane, gdy użytkownik loguje się do systemu X Window System. Zdefiniowane tu zmienne są widoczne dla każdego X podanie. Idealny wybór do rozszerzenia {[2] } o wartości takie jak~/bin
lub~/go/bin
lub zdefiniowania specyficznego 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
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. -
~/.<shell>rc
. Skrypt powłoki. Jest to zły wybór, ponieważ jest specyficzny dla pojedynczej powłoki.
Dokumentacja specyficzna dla dystrybucji
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-01-15 13:43:24
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
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
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
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
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
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
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
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
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
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
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
Jednym ze sposobów na dodanie stałej ścieżki, która mi się sprawdziła, jest: cd / etc / profile.d dotyk custom.sh vi custom.sh export PATH=$PATH: / path zgodnie z Twoim ustawieniem/ zrestartuj komputer i tutaj idziemy ścieżka będzie tam na stałe zdrowie.
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-05-28 03:19:04
Dla dystrybucji Debiana, musisz:
- edit ~/.bashrc e.g: vim ~/.bashrc
- add export PATH=$PATH:/path/to/dir
- then restart your computer. Be aware that if you edit ~/.bashrc as root, your environment variable you added will work only for 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
2017-12-27 21:18:00
Można go bezpośrednio dodać za pomocą następującego polecenia:
Echo 'export PATH=$PATH: / new / directory'>>~/.zshrc źródło~/.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
2016-07-11 11:31:39