Что такое этот $PATH в Linux и как его изменить

У меня есть несколько вопросов по этому $PATH в Linux.

Я знаю, что он сообщает оболочке, какие каталоги искать исполняемые файлы, поэтому:

  1. что означает переменная окружающей среды?
  2. как изменить свой путь? и рекомендуется ли его менять?
  3. если я изменю его, каковы последствия?

3 ответов


чтобы получить текущий путь $PATH введите переменную:

echo $PATH 

он сообщает вашей оболочке, где искать двоичные файлы.

Да, вы можете изменить его, например, добавьте к $PATH папка с пользовательскими скриптами.

Итак: если ваши скрипты в /usr/local/myscripts для их выполнения вам придется ввести полный путь к скрипту:/usr/local/myscripts/myscript.sh После смены $PATH переменная вы можете просто ввести myscript.sh выполнить скрипт.

здесь пример $PATH от RHEL:

в/usr/Kerberos с/ОГРН:/usr/местные/Бен:/ОГРН:/usr/Бен:/главная/пользователя/ОГРН

изменить вашу $PATH вы должны либо изменить ~/.profile (или ~/.bash_profile) для пользователя или глобальной $PATH настройка в /etc/profile.

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


во-первых, вы правы в своем утверждении о том, что делает $PATH. Если вы должны были как-то сломать его (согласно вашей третьей точке), вам придется вручную ввести /usr/bin/xyz, если вы хотите запустить программу в /usr/bin с терминала. В зависимости от того, как работают отдельные программы, это может нарушить некоторые программы, которые вызывают другие, так как они будут ожидать, что просто смогут запускать ls или что-то еще.

поэтому, если бы Вы играли с $PATH, я бы предложил сохранить его где-нибудь первый. Используйте инструкцию командной строки

echo $PATH > someRandomFile.txt

чтобы сохранить его в someRandomFile.txt

вы можете изменить $PATH с помощью команды export. Так что

export PATH=someNewPath

однако это полностью заменит $PATH на someNewPath. Поскольку элементы в path разделены ":", вы можете добавить к нему элементы (лучше не удалять, см. выше), выполнив

export PATH=$PATH:newPath

тот факт, что это переменная окружающей среды, означает, что программы могут узнать ее значение, т. е. что-то, что установлено в среде, в которой работает программа. Другие переменные среды включают такие вещи, как текущий каталог и адрес текущего прокси-сервера.


это просто, и мне нравится этот способ.

откройте оболочку linux bash и распечатайте переменные среды:

printenv

Я копируем "PATH" переменная в текстовый редактор и редактировать, как я хочу. Затем обновите PATH такой

export PATH= /variable dir list/

Это Работает.

или если вы хотите добавить одну переменную, используйте эту команду.

export PATH = $PATH:/variable_dir_path/

это расширит путь с вашим новым путем каталога.