PATH в Linux: как заставить систему находить ВАШИ программы
Вы когда-нибудь задумывались, почему для запуска `ls` или `nano` вам не нужно вводить полный путь вроде `/usr/bin/ls`? Система просто знает, где искать. А что, если вы создали свой собственный скрипт или установили программу в нестандартную папку, и теперь она не запускается по имени?
Всё дело в одной скрытой силе — переменной окружения PATH. Это ваш личный проводник по файловой системе, который говорит терминалу, в каких именно папках искать исполняемые команды.
Представьте, что ваш компьютер — это огромный офис, а PATH — это список кабинетов, где секретарь (ваша оболочка) ищет сотрудников (программы). Если вашего «сотрудника» нет в этом списке, его просто не найдут.
Вы узнаете, как одним простым действием заставить систему видеть ваши программы и скрипты, где бы они ни находились. Мы не только покажем, как временно изменить PATH, но и раскроем секрет, как сделать эти изменения постоянными, чтобы они не сбрасывались после перезагрузки.
Готовы наконец-то стать полноправным хозяином своего терминала и избавиться от головной боли с «ненайденными» командами? Тогда погружайтесь в статью и откройте для себя все возможности этой фундаментальной настройки!
Когда вы запускаете программу из терминала или скрипта, то обычно пишете только имя файла программы. Однако, ОС 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 и как добавлять к её значению новые пути поиска исполняемых и связанных с ними файлов. Как видите, всё делается достаточно просто. Таким образом вы можете добавить столько папок для поиска и хранения исполняемых файлов, сколько вам требуется.