Глиф Учебники

Как добавить папку в PATH

Справочник · Командная строка Linux · 2 минуты чтения

PATH — список папок через двоеточие, в которых оболочка ищет команды. Папку в него добавляет строка export PATH=…, а куда её вписать, зависит от того, где папка должна действовать.

Как добавить

Случай зависит от того, где нужна папка: только в открытом окне терминала, всегда для вас или для всех пользователей.

Только в этом терминале

Bash
export PATH="$HOME/bin:$PATH"

Настройка действует до закрытия окна.

Дальше — для всех случаев

Допишите ту же строку в конец ~/.bashrc и примените:

Bash
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Одинарные кавычки в echo нужны, чтобы в файл попал сам текст $HOME и $PATH, а не их нынешние значения. В новых окнах терминала настройка действует сама.

Дальше — для всех случаев

Для всех пользователейчерез /etc/profile.d

Создайте файл в папке /etc/profile.d/:

Bash
sudo nano /etc/profile.d/myapp.sh

С одной строкой:

Bash
export PATH="$PATH:/opt/myapp/bin"

Файлы из /etc/profile.d/ читаются при входе в систему, поэтому изменение заработает после нового входа (выйдите и войдите снова или переподключитесь по SSH).

Во всех трёх случаях $PATH в строке сохраняет весь прежний список, а новая папка встаёт перед ним или после него — чем это различается, сказано ниже.

Проверить

Bash
echo $PATH
which myscript.sh

В первом выводе должна появиться ваша папка, второй покажет полный путь к программе, если оболочка её находит (вместо myscript.sh — имя вашей программы из этой папки).

Папка в начале или в конце

Для своих скриптов обычно всё равно; если не уверены — ставьте в конец.

Подводные камни

Не забывайте $PATH. Строка export PATH="$HOME/bin" заменит весь список одной папкой: перестанут находиться ls, nano и другие команды. Если это случилось, верните стандартный список на время и исправьте файл: export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin, затем nano ~/.bashrc.