Что означает $PATH?
Я пытаюсь установить что-то, и среди шагов был этот:
"Поместите это на свой $PATH
"
Что это значит? Что это такое?
Я искал и этот сайт, и в Google, но все считают это само собой разумеющимся!
3 ответа
Запустите в терминале:
echo $PATH
или же
printf "%s\n" "$PATH"
то, что вы видите, представляет собой список каталогов, выглядящий так:
/home/jacob/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Если вы поместите исполняемый файл в один из этих каталогов, вам не нужно указывать путь к исполняемому файлу / скрипту, но вы можете запустить его по имени в качестве команды.
Исполняемые файлы в $PATH
не должно иметь расширения языка по соглашению (хотя они будут работать)
Редактирование переменной $PATH
Вы можете (постоянно) добавить каталог в $PATH
добавив следующую строку в ваш ~/.profile
файл (невидимый по умолчанию, нажмите Ctrl+H в файловом менеджере, чтобы сделать его видимым):
export PATH=$PATH:/path/to/dir
Больше полезной информации о переменных среды
(такие как $PATH
) можно найти здесь (спасибо за предложения @Letizia)
$PATH
переменная среды, связанная с расположением файла
Когда вы вводите команду для запуска, система ищет ее в каталогах, указанных PATH
в указанном порядке.
Вы можете просмотреть каталоги, указанные, набрав echo $PATH
в терминале.
Предположим, есть исполняемый файл foobar01.sh
присутствовать на /home/user/foo1/foo2/foobar01.sh
который вы хотите выполнить на регулярной основе. ввод всего "пути" занял бы много времени. Таким образом, мы добавляем каталог в $PATH
переменная, и мы можем выполнить foobar.sh
непосредственно, даже не указывая путь.
Вы можете добавить его в $PATH
введя следующую команду
export PATH=$PATH:/home/user/foo1/foo2
Я предполагаю, что вы пришли из фона Windows (извините, если это не так). В терминах непрофессионала, путь (или путь поиска) - это список каталогов, в которых будет выполняться поиск всего, что вы вводите в командной строке. Если вы введете встроенную команду, такую как ls, она будет искать указанный список каталогов. Вы можете найти свой путь, набрав echo $PATH. Вот одно отличие между Windows и *nix: по умолчанию Windows всегда ищет исполняемый файл в текущем каталоге. Например, если у вас есть файл с именем uptime.bat в c:\myscripts, и вы cd c:\myscripts и введите uptime, он запустится. Однако в * nix будет использован путь и найден исполняемый файл (если имеется).
Если вы храните свои скрипты в каталоге / home / teresa / scripts, чтобы выполнить эти скрипты, вам нужно будет указать полный путь к этому каталогу. Пример: /hone/teresa/checkHost. Вариантом может быть cd / home / teresa, а затем введите./checkHost (обратите внимание на./, что означает, что вы явно просите файл запустить из текущего каталога.
Чтобы избежать этого, вы можете просто набрать
экспорт PATH=$PATH:/home/teresa/scripts
Это означает, что, в дополнение к уже существующему пути, также выполните поиск в / hone / teresa / scripts. Однако проблема заключается в том, что после выхода из системы этот параметр исчезнет. Итак, вы должны отредактировать скрытый файл ~/.bashrc, найти там строку PATH и добавить ее соответственно. Я предполагаю, что вы используете Bash. В случае других оболочек синтаксис и файл различны.
Как новый пользователь, это очень заманчиво иметь. в пути поиска, что в основном означает, что также искать в текущем каталоге. Однако это не считается хорошей практикой по причинам, обсуждаемым в другом месте.
НТН