Można to zrobić na wiele sposobów. Rzeczywiste rozwiązanie zależy od celu.
Wartości zmiennych są zwykle przechowywane na liście przypisań lub w skrypcie powłoki uruchamianym na początku sesji systemowej lub użytkownika. W przypadku skryptu powłoki należy użyć określonej składni powłoki i / export
lub set
poleceń.
System szeroki
/etc/environment
Lista unikalnych zadań, pozwala na referencje. Idealny do dodawania katalogów systemowych jak /usr/local/something/bin
do PATH
zmiennej lub definiowania JAVA_HOME
. Używany przez PAM i SystemD.
/etc/environment.d/*.conf
Lista unikalnych zadań, pozwala na referencje. Idealny do dodawania katalogów systemowych jak /usr/local/something/bin
do PATH
zmiennej lub definiowania JAVA_HOME
. Konfigurację można podzielić na wiele plików, zwykle po jednym na każde narzędzie (Java, Go, NodeJS). Używany przez SystemD, który z założenia nie przekazuje tych wartości do powłok logowania użytkownika.
/etc/xprofile
Skrypt powłoki wykonywany podczas uruchamiania sesji X Window System. Jest to uruchamiane dla każdego użytkownika, który loguje się do X Window System. Jest to dobry wybór dla PATH
wpisów, które są ważne dla każdego użytkownika, takiego jak /usr/local/something/bin
. Plik jest zawarty w innym skrypcie, więc używaj składni powłoki POSIX, a nie składni powłoki użytkownika.
/etc/profile
i /etc/profile.d/*
skrypt Shell. Jest to dobry wybór dla systemów tylko z powłoką. 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.
Sesja użytkownika
~/.pam_environment
. Lista unikalnych zadań, bez referencji. Ładowane przez PAM na początku każdej sesji użytkownika nie ma znaczenia, jeśli jest to sesja lub powłoka systemu X Window. Nie można odwoływać się inne zmienne łącznie HOME
albo PATH
tak 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. Idealny wybór dla powiększenia PATH
o wartościach takich jak ~/bin
lub ~/go/bin
czy zdefiniowania konkretnego użytkownika GOPATH
lub NPM_HOME
. Plik jest zawarty w innym skrypcie, więc używaj składni powłoki POSIX, a nie składni powłoki użytkownika. Graficzny edytor tekstu lub IDE uruchomiony skrótem zobaczy te wartości.
~/.profile
, ~/.<shell>_profile
, ~/.<shell>_login
Skrypt Shell. Będzie widoczny tylko dla programów uruchamianych z terminala lub emulatora terminala. Jest to dobry wybór dla systemów tylko z powłoką. Używany przez powłoki w trybie logowania.
~/.<shell>rc
. Skrypt powłoki. Jest to zły wybór, ponieważ jest specyficzny dla pojedynczej powłoki. Używany przez powłoki w trybie bez logowania.
Notatki
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
- grzmotnąć
- dziarskość
Dokumentacja specyficzna dla dystrybucji
Związane z
Różnica między powłoką logowania a powłoką niezalogowaną?
.bash_profile
powinien zostać dodany do listy?/etc/environment
. Ale czy mogę go odświeżyć bez wylogowania i zalogowania? Czasami nie używam bash ani sh, więcsource /etc/environment
nie działa.Musisz dodać go do pliku
~/.profile
lub~/.bashrc
pliku.W zależności od tego, co robisz, możesz również chcieć utworzyć dowiązanie symboliczne do plików binarnych:
Pamiętaj, że nie spowoduje to automatycznej aktualizacji Twojej ścieżki do końca sesji. Aby to zrobić, uruchom:
źródło
$PATH
a/usr/bin
. 2) Powinien/usr/bin
nawet tam być. 3) Nie powinieneś raczej używać/usr/local/bin
?cd
do katalogu, w którym go rozpakowałeś, a następnie uruchomls
---, a następnie zdaj sobie sprawę, że w archiwum wywołano złośliwy programls
.W Ubuntu edytuj
/etc/environment
. Jego jedynym celem jest przechowywanie zmiennych środowiskowych. Pierwotnie zmienna $ PATH jest tutaj zdefiniowana. To jest pasta z mojego/etc/environment
pliku:Możesz więc otworzyć ten plik jako root i dodać co tylko chcesz.
Aby uzyskać natychmiastowe wyniki, uruchom (spróbuj jako zwykły użytkownik i root):
AKTUALIZACJA:
Jeśli używasz
zsh
(aka Z Shell), dodaj tę linię zaraz po komentarzach w/etc/zsh/zshenv
:Zetknąłem się z tym małym dziwactwem na Ubuntu 15.10, ale jeśli twój zsh nie otrzymuje poprawnej ŚCIEŻKI , może to być powód
źródło
$PATH
jest również zdefiniowany/etc/profile
w Arch Linux.Umieść
export
deklarację w~/.bashrc
. Mój .bashrc zawiera to:źródło
.profile
„, nie znalazłem.bashrc
source ~/.bashrc
aby ponownie załadować.bashrc
konfigurację. Wtedy to zadziałaexport
kluczowe jest potrzebne tylko wtedy, gdyPATH
nie jest już oznaczone jako zmienna środowiskowa - co będzie prawie bezwarunkowo. Po prostuPATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
miałby ten sam efekt.Możesz ustawić na
$PATH
stałe na 2 sposoby.Aby ustawić ścieżkę dla konkretnego użytkownika: Może być konieczne wprowadzenie wpisu w
.bash_profile
katalogu osobistym użytkownika.np. w moim przypadku ustawię ścieżkę java w profilu użytkownika tomcat
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:
źródło
/etc/profiles
ze związkiems
na swojej dystrybucji? Mój nie mas
. Myślę, że masz literówkę.Możesz używać w Centos lub RHEL dla lokalnego użytkownika:
To doda bieżący katalog (lub możesz użyć innego katalogu) do ŚCIEŻKI, dzięki czemu będzie trwały, ale zacznie obowiązywać przy następnym logowaniu użytkownika.
Jeśli nie chcesz ponownie logować się, możesz użyć:
Przeładuj
# User specific environment and startup programs
ten komentarz jest obecny w.bash_profile
źródło
Możesz także 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 także użyć
/etc/environment
do ustawienia stałej zmiennej środowiskowej PATH, ale nie obsługuje ona rozszerzania zmiennych .Wyodrębniono z: http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html
źródło
Wczoraj natknąłem się na to pytanie, szukając sposobu, aby dodać folder zawierający moje własne skrypty do PATH - i byłem zaskoczony, gdy dowiedziałem się, że mój własny
~/.profile
plik (na Linux Mint 18.1) już to zawierał:Tak więc wszystko, co musiałem zrobić, to utworzyć folder
~/bin
i umieścić tam moje skrypty.źródło
Myślę, że najbardziej eleganckim sposobem jest:
1. dodaj to w pliku ~ / .bashrc Uruchom to polecenie
dodaj swoją ścieżkę
2. źródło ~ / .bashrc
(Ubuntu)
źródło
Możesz dodać tę linię do pliku konfiguracyjnego konsoli (np. .Bashrc) lub do .profile
źródło
/home/(username)
ls -a
można je zobaczyć.)Dodaj na stałe zmienną PATH
Światowy:
Lokalny (tylko dla użytkownika):
Do globalnego restartu. Do lokalnego ponownego logowania.
Przykład
Przed:
Po:
Możesz też po prostu edytować profil:
Inny sposób (dzięki gniourf_gniourf):
źródło
echo 'export PATH=$PATH:/new/path/variable'
... Nawiasem mówiąc,export
słowo kluczowe jest prawdopodobnie bezużyteczne, ponieważPATH
zmienna jest już prawdopodobnie oznaczona jako wyeksportowana./usr/local
do niego za pomocą~/.bashrc
. teraz, jeśli zamierzasz dołączyć/opt/bin
do tej samej zmiennej za pomocą/etc/bash.bashrc
; $ PATH przełoży się na ten sam ciąg statyczny, w wyniku czego $ PATH zostanie zastąpione zamiast dołączone do ... Będzie to kwestia preferencji systemu względem jednego pliku nad drugim1. zmodyfikuj plik „/ etc / profile”.
Naciśnij klawisz „i”, aby wprowadzić status edycji i przesuń kursor na koniec pliku, dodatkowe wpisy :
Naciśnij klawisz „Esc”, wyjdź ze stanu edycji, „: wq” zapisz plik.
2. Spraw, aby konfiguracja była skuteczna
Wyjaśnij file plik profilu działa dla wszystkich użytkowników, jeśli chcesz być ważny tylko dla aktywnego użytkownika, ustaw plik „.bashrc”
źródło
Po tak wielu badaniach znalazłem proste rozwiązanie tego problemu (używam elementarnego systemu operacyjnego ), zainspirowane poniższym linkiem .
Wierzę, że jest to trwałe rozwiązanie do ustawiania ścieżki w trzepotaniu w dystrybucji Ubuntu
Mam nadzieję, że to pomoże.
źródło
pliki, do których dodajesz polecenie eksportu, zależą od tego, czy jesteś w trybie logowania, czy bez logowania.
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 /.profile lub plików w katalogu /.profiles.d
pliki wymienione powyżej, jeśli są tam zmienne systemowe.
źródło
Dodaj do
/etc/profile.d
folderu skryptu[name_of_script].sh
z linii:export PATH=$PATH:/dir
. Każdy skrypt w/etc/profile.d
folderze jest wykonywany automatycznie/etc/profile
przy logowaniu.źródło
Zues77 ma właściwy pomysł. OP nie powiedział: „jak mogę włamać się przez to”. OP chciał wiedzieć, jak na stałe dołączyć do $ PATH:
Tutaj jest ustawiony na wszystko i jest to najlepsze miejsce, aby to zmienić na wszystkie rzeczy wymagające $ PATH
źródło
Moja odpowiedź jest w odniesieniu do zakładania
go-lang
naUbuntu linux/amd64
.I napotkały ten sam problem ustawiania ścieżki zmiennych środowiskowych (GOPATH
iGOBIN
), tracąc go na wyjściu zacisków i odbudowę go za pomocąsource <file_name>
wszelkich time.The błędem było umieścić ścieżkę (GOPATH
iGOBIN
) w~/.bash_profile
folderze. Po marnować kilka dobrych godzin, okazało się, że rozwiązaniem było umieszczenieGOPATH
iGOBIN
w~/.bash_rc
pliku w sposób:i dzięki temu instalacja go działała dobrze i nie było żadnych strat ścieżki.
EDYCJA 1: Powodem, dla którego ten problem może być związany, jest to, że ustawienia powłok niezalogowanych, takich jak terminal ubuntu lub gnome-terminal, w których uruchamiamy kod go, są pobierane z
~./bash_rc
pliku, a ustawienia powłok logowania są pobierane z~/.bash_profile
pliku, i z~/.profile
pliku, jeśli~/.bash_profile
plik jest nieosiągalny.źródło
Załóżmy, że używasz systemu MacOS i masz plik binarny, któremu ufasz i chciałbyś go udostępnić w całym systemie, ale niekoniecznie chcesz katalogu, w którym plik binarny ma zostać dodany do PATH, możesz wybrać opcję kopiowania / przenoszenia plik binarny do
/usr/local/bin
, który powinien już znajdować się w ŚCIEŻCE. Spowoduje to, że plik binarny będzie wykonywalny jak każdy inny plik binarny, do którego masz już dostęp w swoim terminalu.źródło
Można go dodać bezpośrednio za pomocą następującego polecenia:
źródło
bash
, więc nie jest to bardzo pomocne.najlepszy prosty sposób to następujący wiersz:
PATH="<directory you want to include>:$PATH"
w pliku .bashrc w katalogu domowym.
Nie zostanie zresetowany nawet po zamknięciu terminalu lub ponownym uruchomieniu komputera. Jest stały
źródło
Myślę, że najbardziej eleganckim sposobem jest:
1. dodaj to w pliku ~. / Bashrc
2. źródło ~ / .bashrc
(Ubuntu)
źródło
jednym ze sposobów dodania stałej ścieżki, która działała dla mnie, jest:
uruchom ponownie komputer, a my przejdziemy ścieżkę, czy będą na stałe wiwatować.
źródło
W przypadku dystrybucji Debian musisz:
źródło
To jest jednowarstwowy . Dodaje linię do
.bashrc
. Ta linia sprawdzi, czy katalog został już dodany do ścieżki i dołącz, jeśli nie. Zapobiegnie to duplikowaniu katalogu na ścieżce przy każdym źródle.bashrc
.źródło