Szukaj…


Składnia

  • Dodaj ścieżkę: PATH = $ PATH: / new / path
  • Dodaj ścieżkę: PATH = / new / path: $ PATH

Parametry

Parametr Detale
ŚCIEŻKA Zmienna środowiskowa ścieżki

Uwagi

Plik konfiguracyjny Bash:

Ten plik jest pobierany przy każdym uruchomieniu nowej interaktywnej powłoki Bash.

W systemach GNU / Linux jest to zazwyczaj plik ~ / .bashrc; w systemie Mac to ~ / .bash_profile lub ~ / .profile

Eksport:

Zmienna PATH musi zostać wyeksportowana jeden raz (domyślnie jest to zrobione). Po wyeksportowaniu pozostanie on wyeksportowany, a wszelkie wprowadzone w nim zmiany zostaną zastosowane natychmiast.

Zatwierdź zmiany:

Aby zastosować zmiany w pliku konfiguracyjnym Bash, musisz ponownie załadować ten plik do terminala (plik source /path/to/bash_config_file )

Dodaj ścieżkę do zmiennej środowiskowej PATH

Zmienna środowiskowa PATH jest ogólnie definiowana w ~ / .bashrc lub ~ / .bash_profile lub / etc / profile lub ~ / .profile lub /etc/bash.bashrc (plik konfiguracyjny Bash specyficzny dla dystrybucji)

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/jdk1.8.0_92/bin:/usr/lib/jvm/jdk1.8.0_92/db/bin:/usr/lib/jvm/jdk1.8.0_92/jre/bin

Teraz, jeśli chcemy dodać ścieżkę (np. ~/bin ) do zmiennej PATH:

PATH=~/bin:$PATH
# or
PATH=$PATH:~/bin

Ale to zmodyfikuje PATH tylko w bieżącej powłoce (i jej podpowłoce). Po wyjściu z powłoki ta modyfikacja zniknie.

Aby było trwałe, musimy dodać ten fragment kodu do pliku ~ / .bashrc (lub cokolwiek innego) i ponownie załadować plik.

Jeśli uruchomisz następujący kod (w terminalu), doda on ~/bin do PATH na stałe:

echo 'PATH=~/bin:$PATH' >> ~/.bashrc && source ~/.bashrc

Wyjaśnienie:

  • echo 'PATH=~/bin:$PATH' >> ~/.bashrc dodaje wiersz PATH=~/bin:$PATH na końcu pliku ~ / .bashrc (można to zrobić za pomocą edytora tekstu)
  • source ~/.bashrc ładuje plik ~ / .bashrc

To jest trochę kodu (uruchamianego w terminalu), który sprawdzi, czy ścieżka jest już uwzględniona i doda ją tylko, jeśli nie:
path=~/bin            # path to be included
bashrc=~/.bashrc      # bash file to be written and reloaded
# run the following code unmodified
echo $PATH | grep -q "\(^\|:\)$path\(:\|/\{0,1\}$\)" || echo "PATH=\$PATH:$path" >> "$bashrc"; source "$bashrc"

Usuń ścieżkę ze zmiennej środowiskowej PATH

Aby usunąć PATH ze zmiennej środowiskowej PATH, musisz edytować ~ / .bashrc lub ~ / .bash_profile lub / etc / profile lub ~ / .profile lub /etc/bash.bashrc (specyficzny dla dystrybucji) i usunąć przypisanie dla ta konkretna ścieżka.

Zamiast znaleźć dokładne przypisanie, możesz po prostu dokonać zamiany w $PATH w jej ostatnim etapie.

Następujące czynności bezpiecznie usuną $path $PATH z $PATH :

path=~/bin
PATH="$(echo "$PATH" |sed -e "s#\(^\|:\)$(echo "$path" |sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')\(:\|/\{0,1\}$\)#\1\2#" -e 's#:\+#:#g' -e 's#^:\|:$##g')"

Aby było trwałe, musisz dodać go na końcu pliku konfiguracyjnego bash.


Możesz to zrobić w funkcjonalny sposób:
rpath(){
    for path in "$@";do
        PATH="$(echo "$PATH" |sed -e "s#\(^\|:\)$(echo "$path" |sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')\(:\|/\{0,1\}$\)#\1\2#" -e 's#:\+#:#g' -e 's#^:\|:$##g')"
    done
    echo "$PATH"
}

PATH="$(rpath ~/bin /usr/local/sbin /usr/local/bin)"
PATH="$(rpath /usr/games)"
# etc ...

Ułatwi to obsługę wielu ścieżek.

Uwagi:

  • Musisz dodać te kody w pliku konfiguracyjnym Bash (~ / .bashrc lub cokolwiek innego).
  • Uruchom source ~/.bashrc aby ponownie załadować plik konfiguracji Bash (~ / .bashrc).


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow