Що означає $ 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

Якщо ви помістите виконуваний файл в будь-який з цих каталогів, вам не потрібно встановлювати шлях до виконуваного файлу / скрипту, але ви можете запустити його за його ім'ям як команду.

Виконавчі файли в $PATHне повинні мати розширення мови за умовами (хоча вони працюватимуть)

Редагування змінної $ PATH

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

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

Більш корисна інформація про змінні середовища

(наприклад, $PATH) можна знайти тут (дякую за пропозиції @Letizia)


ми можемо запропонувати, як змінити це у .bashrc PATH = $ PATH: / path / you / want, або у .profile, як ти думаєш?
Лети

і це корисне посилання для початківців
Lety

@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 і вводите в режимі оновлення, він запуститься. Однак у * nix буде проконсультовано шлях та знайдено виконуваний файл (якщо він є).

Якщо ви зберігаєте свої сценарії в каталозі / home / teresa / script, для виконання цих сценаріїв вам доведеться вказати повний шлях до цього каталогу. Приклад: / hone / teresa / checkHost. Варіантом буде cd / home / teresa, а потім набрати ./checkHost (зверніть увагу на ./, що означає, що ви явно просите файл запустити з поточного каталогу.

Щоб цього уникнути, ви можете просто набрати

експортувати PATH = $ PATH: / home / teresa / script

що означає, що крім шляху, який вже існує зараз, також здійснювати пошук у / hone / teresa / script. Однак проблема в тому, що після входу в систему цього налаштування не буде. Отже, слід відредагувати прихований файл ~ / .bashrc, знайти там рядок PATH та додати його відповідно. Я припускаю, що ви використовуєте bash. У випадку з іншими оболонками синтаксис та файл відрізняються.

Як нового користувача, це дуже спокусливо мати. в шляху пошуку, що в основному означає, що також шукати в поточному каталозі. Однак це не вважається хорошою практикою з причин, обговорених в інших місцях.

HTH

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.