Переменная среды $PATH. Запуск желаемых исполняемых файлов через терминал.

26. июля 2019 Linux 0

Примечание: ниже описанное было применено для дистрибутива на основе Ubuntu.

 

Переменная среды $PATH хранит в себе пути до основных каталогов с исполняемыми файлами.

echo $PATH

 

Будут перечислены пути:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

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

Значение прописано в системном файле /etc/environment. Не рекомендуется изменять этот файл, вместо этого советуют использовать специальный каталог пользователя, указанный в файле ~/.profile

В файле указано, что личные исполняемые файлы пользователя могут храниться в каталоге ~/.local/bin По умолчанию этот каталог, скорее всего, будет отсутствовать, поэтому его необходимо создать. Затем поместить в этот каталог ссылки на желаемые исполняемые файлы или сценарии оболочки (shell script), если требуется производить запуск со специальными параметрами:

Примечание: не забыть разрешить выполнение для пользователя.

Примечание: на изображении показан вариант размещения сценариев оболочки, ничто не мешает поместить их в более подходящий подкаталог пользователя.

 

Потребуется перезапустить сеанс, чтобы изменения вступили в силу, но для теста можно принудительно обновить информацию из файла ~/.profile, чтобы каталог ~/.local/bin записался в переменную $PATH:

source ~/.profile

Проверяем:

echo $PATH

Теперь в списке должен появиться путь до каталога ~/.local/bin

Наконец достаточно написать в терминале имя ссылки или сценария оболочки, чтобы запустить программу.

 


 

Альтернативным вариантом является редактирование файла ~/.bashrc. Достаточно добавить запись:

PATH="$HOME/.local/bin:$PATH"

Таким образом после перезапуска сеанса указанный путь будет записан в переменную $PATH.