Как добавить каталог в PATH (путь) в Linux

12 set 2022 2 min di lettura
Как добавить каталог в PATH (путь) в Linux
Indice dei contenuti

Введение

Когда вы вводите команду в командной строке, она в основном говорит оболочке запустить исполняемый файл с указанным именем. В 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.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.