Главная >> Инструкции >> Переменная PATH в Linux

Переменная PATH в Linux

Когда вы запускаете программу из терминала или скрипта, то обычно пишете только имя файла программы. Однако, ОС Linux спроектирована так, что исполняемые и связанные с ними файлы программ распределяются по различным специализированным каталогам. Например, библиотеки устанавливаются в /lib или /usr/lib, конфигурационные файлы в /etc, а исполняемые файлы в /sbin/, /usr/bin или /bin.

Таких местоположений несколько. Откуда операционная система знает где искать требуемую программу или её компонент? Всё просто — для этого используется переменная PATH. Эта переменная позволяет существенно сократить длину набираемых команд в терминале или в скрипте, освобождая от необходимости каждый раз указывать полные пути к требуемым файлам. В этой статье мы разберёмся зачем нужна переменная PATH Linux, а также как добавить к её значению имена своих пользовательских каталогов.

Переменная PATH в Linux

Для того, чтобы посмотреть содержимое переменной PATH в Linux, выполните в терминале команду:

echo $PATH

На экране появится перечень папок, разделённых двоеточием. Алгоритм поиска пути к требуемой программе при её запуске довольно прост. Сначала ОС ищет исполняемый файл с заданным именем в текущей папке. Если находит, запускает на выполнение, если нет, проверяет каталоги, перечисленные в переменной PATH, в установленном там порядке. Таким образом, добавив свои папки к содержимому этой переменной, вы добавляете новые места размещения исполняемых и связанных с ними файлов.

Для того, чтобы добавить новый путь к переменной PATH, можно воспользоваться командой export. Например, давайте добавим к значению переменной PATH папку/opt/local/bin. Для того, чтобы не перезаписать имеющееся значение переменной PATH новым, нужно именно добавить (дописать) это новое значение к уже имеющемуся, не забыв о разделителе-двоеточии:

export PATH=$PATH:/opt/local/bin

Теперь мы можем убедиться, что в переменной PATH содержится также и имя этой, добавленной нами, папки:

echo $PATH

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

В ОС Ubuntu значение переменной PATH содержится в файле /etc/environment, в некоторых других дистрибутивах её также можно найти и в файле /etc/profile. Вы можете открыть файл /etc/environment и вручную дописать туда нужное значение:

sudo vi /etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/local/bin"

Можно поступить и иначе. Содержимое файла .bashrc выполняется при каждом запуске оболочки Bash. Если добавить в конец файла команду export, то для каждой загружаемой оболочки будет автоматически выполняться добавление имени требуемой папки в переменную PATH, но только для текущего пользователя:

vi ~/.bashrc

export PATH=$PATH:/opt/local/bin

Выводы

В этой статье мы рассмотрели вопрос о том, зачем нужна переменная окружения PATH в Linux и как добавлять к её значению новые пути поиска исполняемых и связанных с ними файлов. Как видите, всё делается достаточно просто. Таким образом вы можете добавить столько папок для поиска и хранения исполняемых файлов, сколько вам требуется.

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

8 комментариев к “Переменная PATH в Linux”

  1. >> Сначала ОС ищет исполняемый файл с заданным именем в текущей папке.

    А вот, хрена с два! -- Это в Шиндовсе так. Но в Линуксе всё совсем по другому!

    Прежде чем других учить Линуксу, было бы не худо самому изучить вопрос.

    Ответить
  2. Если есть что предложить дельное для людей, преподнесите! А ветер гонять, пустое дело. Автору респект. Ни раз уже выручали его статьи.

    Ответить
  3. В текущем каталоге искал команды дос, а линукс нет.
    Чтобы выполнить програму или скрипт в текущем каталоге надо указать ./программа

    Ответить
  4. Привет ADMIN! Помоги! Где в RHEL/CentOS/Fedora находится глобальный файл PATH для всех юзеров компьютера + для удаленных подключений (я так понял они разные). Допиши пожалуйста в статью.

    Накидайте лукасов, чтобы ADMIN увидел сообщение. Спасибо

    Ответить
  5. На Ubuntu 22.04. Если выполнить echo $PATH, потом export PATH=$PATH:/адрес, а потом снова echo $PATH то вы увидете, что вместо добавления вашего адреса, там вообще всё удалиться и останется только указанная вами папка. И если не восстановить всё вручную после перезапуска Ubuntu не примет пароль из-за проблем с PATH и вы не сможите войти в Ubuntu до восстановления PATH или переустановки ОС.

    Ответить
    • $PATH - содержит текущее состояние переменной, и эта строка (PATH=$PATH:/адрес) в конец добавляет к уже имеющимся данным, новую директорию.
      И второе - эта команда не сохраняет изменение после перезагрузки системы

      Ответить

Оставьте комментарий