Когда вы запускаете программу из терминала или скрипта, то обычно пишете только имя файла программы. Однако, ОС 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 новым, нужно именно добавить (дописать) это новое значение к уже имеющемуся, не забыв о разделителе-двоеточии:
Теперь мы можем убедиться, что в переменной PATH содержится также и имя этой, добавленной нами, папки:
echo $PATH
Вы уже знаете как в Linux добавить имя требуемой папки в переменную PATH, но есть одна проблема — после перезагрузки компьютера или открытия нового сеанса терминала все изменения пропадут, ваша переменная PATH будет иметь то же значение, что и раньше. Для того, чтобы этого не произошло, нужно закрепить новое текущее значение переменной PATH в конфигурационном системном файле.
В ОС Ubuntu значение переменной PATH содержится в файле /etc/environment, в некоторых других дистрибутивах её также можно найти и в файле /etc/profile. Вы можете открыть файл /etc/environment и вручную дописать туда нужное значение:
sudo vi /etc/environment
Можно поступить и иначе. Содержимое файла .bashrc выполняется при каждом запуске оболочки Bash. Если добавить в конец файла команду export, то для каждой загружаемой оболочки будет автоматически выполняться добавление имени требуемой папки в переменную PATH, но только для текущего пользователя:
vi ~/.bashrc
Выводы
В этой статье мы рассмотрели вопрос о том, зачем нужна переменная окружения PATH в Linux и как добавлять к её значению новые пути поиска исполняемых и связанных с ними файлов. Как видите, всё делается достаточно просто. Таким образом вы можете добавить столько папок для поиска и хранения исполняемых файлов, сколько вам требуется.
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали










>> Сначала ОС ищет исполняемый файл с заданным именем в текущей папке.
А вот, хрена с два! -- Это в Шиндовсе так. Но в Линуксе всё совсем по другому!
Прежде чем других учить Линуксу, было бы не худо самому изучить вопрос.
Если есть что предложить дельное для людей, преподнесите! А ветер гонять, пустое дело. Автору респект. Ни раз уже выручали его статьи.
Большое спасибо. вы очень помогли мне)
В текущем каталоге искал команды дос, а линукс нет.
Чтобы выполнить програму или скрипт в текущем каталоге надо указать ./программа
Привет ADMIN! Помоги! Где в RHEL/CentOS/Fedora находится глобальный файл PATH для всех юзеров компьютера + для удаленных подключений (я так понял они разные). Допиши пожалуйста в статью.
Накидайте лукасов, чтобы ADMIN увидел сообщение. Спасибо
подскажите пожалуйста, где находится переменная PATH в Oracle Linux
На Ubuntu 22.04. Если выполнить echo $PATH, потом export PATH=$PATH:/адрес, а потом снова echo $PATH то вы увидете, что вместо добавления вашего адреса, там вообще всё удалиться и останется только указанная вами папка. И если не восстановить всё вручную после перезапуска Ubuntu не примет пароль из-за проблем с PATH и вы не сможите войти в Ubuntu до восстановления PATH или переустановки ОС.
$PATH - содержит текущее состояние переменной, и эта строка (PATH=$PATH:/адрес) в конец добавляет к уже имеющимся данным, новую директорию.
И второе - эта команда не сохраняет изменение после перезагрузки системы