Введение
Когда вы вводите команду в командной строке, она в основном говорит оболочке запустить исполняемый файл с указанным именем. В Linux эти исполняемые программы, такие как ls, find, file и другие, обычно находятся в нескольких разных папках вашей системы. Любые файлы с разрешениями на выполнение, хранящиеся в этих каталогах, могут быть запущены из любого места. Наиболее распространенными каталогами, содержащими исполняемые программы, являются /bin, /sbin, /usr/sbin, /usr/local/bin и /usr/local/sbin.
Когда вы вводите команду, оболочка ищет во всех каталогах, указанных в пользовательской переменной, исполняемый файл с таким именем.
В этой статье показано, как добавить каталоги в $ 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"
Команда экспорта экспортирует измененную переменную в дочерние среды оболочки.
Теперь вы можете запускать свои скрипты, просто введя имя исполняемого скрипта без указания полного пути к исполняемому файлу.
Однако это изменение является временным и действует только в текущем сеансе оболочки.
Чтобы сделать изменение постоянным, вам нужно определить переменную $ PATH в файлах конфигурации оболочки. В большинстве дистрибутивов Linux при запуске нового сеанса переменные среды считываются из следующих файлов:
- Глобальные файлы конфигурации оболочки, такие как /etc/environment и /etc/profile. Используйте эти файлы, если хотите добавить новый каталог для всех пользователей в системе $PATH.
- Пользовательские файлы конфигурации оболочки. Например, если вы используете Bash, вы можете установить переменную $PATH в файле ~/.bashrc, а если вы используете Zsh, имя файла будет ~/.zshrc.
В этом примере мы установим переменную в файле ~/.bashrc. Откройте файл в текстовом редакторе и добавьте в конец следующую строку:
nano ~/.bashrc
export PATH="$HOME/bin:$PATH"
Сохраните файл и загрузите новый $PATH в текущий сеанс оболочки с помощью исходной команды:
source ~/.bashrc
Чтобы подтвердить успешное добавление каталога, напечатайте значение $PATH, набрав:
echo $PATH
Вывод
Добавление новых каталогов в пользовательскую или глобальную переменную $PATH довольно просто. Это позволяет запускать команды и сценарии, хранящиеся в нестандартных местах, без необходимости вводить полный путь к исполняемому файлу.
Те же инструкции применимы к любому дистрибутиву Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint.