Поиск…


Синтаксис

  • Добавить путь: PATH = $ PATH: / new / path
  • Добавить путь: PATH = / новый / путь: $ PATH

параметры

параметр подробности
ДОРОЖКА Переменная окружения

замечания

Файл конфигурации Bash:

Этот файл создается каждый раз, когда запускается новая интерактивная оболочка Bash.

В системах GNU / Linux это обычно файл ~ / .bashrc; в Mac это ~ / .bash_profile или ~ / .profile

Экспорт:

Переменная PATH должна быть экспортирована один раз (это делается по умолчанию). После его экспорта он будет экспортирован и любые внесенные в него изменения будут немедленно применены.

Применять изменения:

Чтобы применить изменения к файлу конфигурации Bash, вы должны перезагрузить этот файл в терминале ( source /path/to/bash_config_file )

Добавить путь к переменной среды PATH

Переменная среды PATH обычно определяется в ~ / .bashrc или ~ / .bash_profile или / etc / profile или ~ / .profile или /etc/bash.bashrc (файл конфигурации Bash для дистрибутива)

$ 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

Теперь, если мы хотим добавить путь (например, ~/bin ) к переменной PATH:

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

Но это изменит PATH только в текущей оболочке (и ее подоболочке). Как только вы выйдете из оболочки, эта модификация исчезнет.

Чтобы сделать его постоянным, нам нужно добавить этот бит кода в файл ~ / .bashrc (или любой другой) и перезагрузить файл.

Если вы запустите следующий код (в терминале), он добавит ~/bin в PATH навсегда:

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

Объяснение:

  • echo 'PATH=~/bin:$PATH' >> ~/.bashrc добавляет строку PATH=~/bin:$PATH в конце файла ~ / .bashrc (вы можете сделать это с помощью текстового редактора)
  • source ~/.bashrc перезагружает файл ~ / .bashrc

Это немного кода (запускается в терминале), который проверяет, включен ли путь и добавляет путь, только если нет:
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"

Удалить путь из переменной среды PATH

Чтобы удалить PATH из переменной среды PATH, вам необходимо отредактировать файл ~ / .bashrc или ~ / .bash_profile или / etc / profile или ~ / .profile или /etc/bash.bashrc (файл с дистрибутивом) и удалить назначение для этот конкретный путь.

Вместо того, чтобы находить точное задание, вы можете просто сделать замену в $PATH на своем последнем этапе.

Следующее безопасно удалит $path из $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')"

Чтобы сделать его постоянным, вам нужно добавить его в конец вашего конфигурационного файла bash.


Вы можете сделать это функционально:
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 ...

Это упростит обработку нескольких путей.

Заметки:

  • Вам нужно будет добавить эти коды в конфигурационный файл Bash (~ / .bashrc или что-то еще).
  • Запустите source ~/.bashrc чтобы перезагрузить файл конфигурации Bash (~ / .bashrc).


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow