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


28

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

"Поместите это на свой $PATH"

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

Я искал и этот сайт, и в Google, но все считают это само собой разумеющимся!



2
@muru Нет, я прочитал этот вопрос, и он не имеет ничего общего с моим. Также этот вопрос не был полезен вообще.
Адам

4
@muru Я думаю, что вопрос не в том, как добавить (или я могу неправильно понять, что означает «Поместить его в свой $ PATH»).
Джейкоб Влейм

1
@JacobVlijm вы правы, это не так.
Адам

2
Понимаю. Хорошо. Связанный; askubuntu.com/q/141718/158442
Муру

Ответы:


24

Запустите в терминале:

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

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

Исполняемые файлы в in $PATHне должны иметь языкового расширения по соглашению (хотя они будут работать)

Редактирование переменной $ PATH

Вы можете (навсегда) добавить каталог $PATH, добавив в ~/.profileфайл следующую строку (по умолчанию она невидима, нажмите Ctrl+ Hв диспетчере файлов, чтобы сделать ее видимой):

export PATH=$PATH:/path/to/dir

Больше полезной информации о переменных среды

(например, $PATH) можно найти здесь (спасибо за предложения @Letizia)


мы можем предложить, как изменить его в .bashrc PATH = $ PATH: / path / you / want или в .profile, что вы думаете?
Лети

и это полезная ссылка для новичков
Лети

@Letizia Я бы предпочел первый. Вы удалили свой ответ? мы были в значительной степени в то же время. мы могли бы составить красивую комбинацию :)
Джейкоб Влейм

Да, я уже сделал, мой ответ удален, и я подумал, что лучше внести свой вклад. Что вы думаете о моем комментарии?
Лети

@Letizia comment = отлично, я буду редактировать. Благодарность!
Джейкоб Влейм

6

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

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

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

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

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

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


2

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

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

НТН

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.