Как добавить каталог в PATH в Linux

Добавить в $PATH в Linux

Когда вы вводите команду в командной строке, вы, по сути, отдаёте командной оболочке команду запустить исполняемый файл с заданным именем. В Linux исполняемые программы, такие как ls , find , file и другие, обычно находятся в нескольких различных каталогах вашей системы. Все файлы с правами на исполнение, хранящиеся в этих каталогах, могут быть запущены из любого места. Наиболее распространённые каталоги для хранения исполняемых программ: /bin , /sbin , /usr/sbin , /usr/local/bin и /usr/local/sbin .

Но как оболочка определяет, в каких каталогах искать исполняемые программы? Неужели она ищет по всей файловой системе?

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

В этой статье объясняется, как добавлять каталоги в переменную $PATH в системах Linux.

Что такое $PATH в Linux

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

Чтобы проверить, какие каталоги находятся в вашей $PATH , вы можете использовать команду printenv или echo :

 echo $PATH

Вывод будет выглядеть примерно так:

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

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

Добавление каталога в $PATH

В некоторых ситуациях может потребоваться добавить другие каталоги в переменную $PATH . Например, некоторые программы могут быть установлены в разных местах, или вам может понадобиться отдельный каталог для ваших личных скриптов, но при этом иметь возможность запускать их без указания абсолютного пути к исполняемым файлам. Для этого нужно просто добавить нужный каталог в переменную $PATH .

Предположим, в вашем домашнем каталоге есть каталог bin , в котором хранятся скрипты оболочки. Чтобы добавить этот каталог в переменную $PATH , введите:

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

Команда export экспортирует измененную переменную в среды дочерних процессов оболочки.

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

Однако это изменение является временным и действует только в текущем сеансе оболочки.

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

  • Глобальные файлы конфигурации, специфичные для оболочки, такие как /etc/environment и /etc/profile . Используйте этот файл, если хотите добавить новый каталог в $PATH всех пользователей системы.

  • Файлы конфигурации, специфичные для каждой оболочки пользователя. Например, если вы используете Bash, вы можете задать переменную $PATH в файле ~/.bashrc . Если вы используете Zsh, имя файла — ~/.zshrc .

В этом примере мы установим переменную в файле ~/.bashrc . Откройте файл в текстовом редакторе и добавьте в конец следующую строку:

 nano ~/.bashrc

~/.bashrc

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

Сохраните файл и загрузите новый $PATH в текущий сеанс оболочки с помощью команды source :

 source ~/.bashrc

Чтобы подтвердить успешное добавление каталога, выведите значение $PATH , введя:

 echo $PATH

Удаление каталога из $PATH

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

Другая редкая ситуация — если вы хотите удалить каталог из переменной $PATH только для текущего сеанса. Это можно сделать, временно отредактировав переменную. Например, если вы хотите удалить каталог /home/lina/bin из переменной $PATH , выполните следующие действия:

 PATH=$(echo "$PATH" | sed -e 's/:/home/lina/bin$//')

В приведенной выше команде мы передаем текущую переменную $PATH команде sed , которая удалит указанную строку (путь к каталогу).

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

Заключение

Добавить новые каталоги в пользовательскую или глобальную переменную $PATH довольно просто. Это позволяет выполнять команды и скрипты, хранящиеся в нестандартных местах, без необходимости указывать полный путь к исполняемому файлу.

Те же инструкции применимы для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии.

Терминал

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *