Добавление каталога в Shell Path

В Linux (также UNIX) $PATH — это переменная среды, используемая для указания оболочке, где искать исполняемые файлы.

Когда вы вводите команду в терминале Linux, на самом деле происходит выполнение программы. Обычно, чтобы выполнить пользовательскую программу или скрипт, нам нужно использовать полный путь к нему, например, /path/to/script.sh или просто ./script.sh, если мы уже находимся в каталоге его размещения. Кроме того, мы можем выполнять множество команд без указания пути, например, uptime, date и т.д.

Причина, по которой нам не нужно указывать пути для некоторых команд, заключается в переменной $PATH. Это переменная, которая может быть настроена, чтобы указать системе Linux, где искать определенные программы. Таким образом, при вводе даты в терминал, Linux проверяет переменную $PATH, чтобы увидеть список каталогов для поиска программы.

В этой заметке мы рассмотрим, как добавить каталог в переменную $PATH в Linux. Это позволит вам вызывать вашу программу или скрипт из любой точки системы, без необходимости указывать путь к месту хранения программы. Увидеть все каталоги, которые в настоящее время настроены в переменной $PATH вашей системы, очень просто. Просто используйте команду echo следующим образом:

$ echo $PATH

Как вы можете видеть, в $PATH уже хранится несколько различных каталогов. Именно это позволяет нам запускать так много команд по умолчанию, не указывая их полное расположение в терминале. Чтобы узнать, к какому каталогу принадлежит команда, можно использовать команду which.

$ which date

/bin/date

Чтобы добавить каталог в $PATH для текущего сеанса, используйте следующий синтаксис команды. В этом примере мы добавляем каталог /bin/myscripts.

$ export PATH="/bin/myscripts:$PATH"

После этого вы можете убедиться, что каталог был добавлен.

$ echo $PATH

/bin/myscripts [...]

Теперь файлы, которые мы сохранили в каталоге /bin/myscripts, могут быть выполнены в любом месте, без указания полного пути к ним. Эта конфигурация изменится, когда мы завершим текущую сессию (перезагрузим компьютер или закроем терминал). Чтобы сделать ее постоянной, ознакомьтесь с разделом ниже.

Чтобы добавить каталог в $PATH на постоянной основе, нам нужно отредактировать файл .bashrc пользователя, которого вы хотите изменить. Используйте nano или ваш любимый текстовый редактор, чтобы открыть файл, хранящийся в домашнем каталоге.

$ nano ~/.bashrc

В конце этого файла поместите ваш новый каталог, который вы хотите навсегда добавить в $PATH.

export PATH="/bin/myscripts:$PATH"

Сохраните изменения и выйдите из файла. После этого выполните следующую команду, чтобы изменения вступили в силу в текущей сессии. В качестве альтернативы вы можете выйти из системы или перезагрузить ее.

$ source ~/.bashrc

На этом все. Вы можете проверить $PATH еще раз, чтобы убедиться в изменениях.

$ echo $PATH

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


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