Что означает $PATH?

Я пытаюсь установить что-то и среди шагов был этот:

"Поместите его в Ваш $PATH"

Что это означает?Что это?

Я искал и этот сайт и на Google, но все просто принимают как очевидное!

28
задан 25 November 2014 в 14:06

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)

24
ответ дан 23 November 2019 в 00:59

$PATH , расположение файла имело отношение переменная среды .

, Когда каждый вводит команду для выполнения, система ищет ее в каталогах, определенных PATH в определенном порядке.

можно просмотреть каталоги, определенные путем ввода echo $PATH в терминале.

предположим существует исполняемый файл foobar01.sh существующий в /home/user/foo1/foo2/foobar01.sh, который Вы хотите выполнить регулярно. ввод всего "пути" был бы трудоемким. Таким образом, мы включаем каталог к $PATH переменная, и мы можем выполниться foobar.sh непосредственно, даже не определяя путь.

можно добавить его к $PATH путем ввода следующей команды

export PATH=$PATH:/home/user/foo1/foo2

6
ответ дан 23 November 2019 в 00:59

Я предполагаю, что Вы происходите из среды Windows (извинения, если это не верно). В терминах неспециалиста путь (или путь поиска) является списком каталогов, которые будут искаться что-либо, что Вы вводите на командной строке. Если Вы введете во встроенной команде как ls, это будет искать указанный список каталогов. Можно искать путь путем ввода $PATH эха. Вот одно различие между Windows, и *отклоните: По умолчанию Windows всегда ищет исполняемый файл в текущем каталоге. Например, если Вы будете иметь файл под названием uptime.bat в c:\myscripts и Вас CD c:\myscripts и введете во время работы, это будет работать. Однако в *отклоняют, с путем будут консультироваться, и исполняемый файл найден (при наличии).

, Если Вы сохраняете свои сценарии в каталоге названными/home/teresa/scripts, для выполнения тех сценариев, необходимо будет определить полный путь к тому каталогу. Пример:/hone/teresa/checkHost. Изменение было бы к CD/home/teresa и затем ввело бы./checkHost (отметьте./, что означает, что Вы явно просите, чтобы файл работал из текущего каталога.

Для предотвращения этого Вы можете просто тип

экспортировать $PATH:/home/teresa/scripts PATH=

, что означает, что, в дополнение к пути, который уже существует теперь, также поиск в/hone/teresa/scripts. Однако проблема с этим состоит в том, что, как только Вы выходите из системы, эта установка закончилась бы. Так, необходимо отредактировать скрытый файл ~/.bashrc, найти строку ПУТИ там и добавить его соответственно. Я предполагаю, что Вы используете удар. В случае других оболочек синтаксис и файл отличаются.

Как новый пользователь, очень заманчиво иметь. в пути поиска, который в основном означает, что также ищут в текущем каталоге. Однако это не считают хорошей практикой по причинам, обсужденным в другом месте.

HTH

2
ответ дан 23 November 2019 в 00:59

Другие вопросы по тегам:

Похожие вопросы: