Системная переменная PATH Windows
Введение | |
Для чего используется | |
Пример | |
Добавить директорию в PATH | |
Изучить содержимое PATH | |
Ошибки | |
Postgesql | |
Похожие статьи |
Введение
Если Вам нужно настроить PATH в Linux - перейдите сюда
Для чего используется
Когда Вы выполняете какую-либо команду в консоли, система ищет соответствие
между названием этой команды и программой, которую можно выполнить.
Искать по всему жёсткому диску было бы слишком долго, поэтому поиск
осуществляется только по некоторым директориям.
Список этих особых директорий хранится в системной переменной PATH.
Пример
Предположим, что возникла необходимость запускать какую-то программу, например
Firefox
, непосредственно из командной строки.
Без предварительной подготовки ввод Firefox в консоль выдаст ошибку.
C:\Users\a>firefox
'firefox' is not recognized as an internal or external command, operable program or batch file.
Чтобы решить эту проблему нужно добавить директорию с испоняемым файлом firefox в PATH
Добавить директорию в PATH
Быстрый способ перейти к редактированию PATH - нажать клавишу Win и ввести в поиск env
Пошаговый способ:
Правый клик на Этот Компьютер (This PC) → Свойства (Properties)
Дополнительные параметры системы (Advanced system settings)
Дополнительно (Advanced) → Переменные среды (Environment Variables)
Если хотите менять для всей системы, то в окошке «Переменные среды»
(System Variables)
найдите строку PATH в блоке
«Системные переменные» (System variables)
выделите кликом и нажмите кнопку «Изменить...» (Edit...)
Если хотите менять только для своего пользователя, то делайте это в блоке
«Переменные среды пользователя %USERNAME%» (User variables for %USERNAME%)
Создайте новый путь (New)
Введите адрес директории в которой лежит нужная программа. В нашем случае это
C:\Program Files (x86)\Mozilla Firefox
Перезапустите консоль или открываем новую и пишем там firefox.
C:\Users\a>firefox
Браузер должен запуститься.
Изучить содержимое PATH
В PowerShell достаточно выполнить
echo $Env:Path
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;
Или
Get-ChildItem Env:Path
Name Value ---- ----- Path C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPo...
В cmd.exe посмотреть список переменных окружения можно выполнив команду set без параметров.
set
Выдача содержит системные переменные и переменные пользователя а также дополнительную информацию. Содержимое PATH выделено зелёным.
Ошибки
-bash: syntax error near unexpected token `('
Скорее всего Вы пытаетесь добавить в unix PATH адрес из Windows, c пробелами, скобками и так далее.
Например:
andrey@olegovich-10:/usr/share$ export PATH=/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath_target_1128437:$PATH
-bash: syntax error near unexpected token `('
Для решения этой проблемы Вам нужно экранировать пробелы и скобки. Если импортируется много путей и ввод очень длинный -
немного проще записать PATH=$PATH:/путь , если Вам подходит запись в конец.
Также нужно помнить, что все лишние пробелы сломают импорт - для проверки можно сделать весь скрипт в одну строку
в текстовом редакторе.
Также стоит помнить, что если Вы работаете в
bash под Windows
,
то переменные окружения нужно задавать через Windows.
andrey@olegovich-10:/usr/share$ export PATH=$PATH:/mnt/c/Program\ Files\ \(x86\)/Common\ Files/Oracle/Java/javapath_target_1128437
Postgesql
Приведу пример для использования psql из
WSL
и
Git Bash
- это может пригодиться если Вы хотите временно добавить
путь к psql в PATH чтобы запустить
Postrgres
скрипт.
В моём случае
psql.exe
находится в папке C:\Program Files\PostgreSQL\12\bin
В
WSL
PATH=$PATH:/mnt/c/Program\ Files/PostgreSQL/12/bin
В Git Bash
PATH=$PATH:/c/Program\ Files/PostgreSQL/12/bin
В PowerShell можно проверить наличие пути до Postgres с помощью Select-String
echo $Env:Path | Select-String Postgres
Добавить путь до Postgres в конец Path можно следующим образом
$Env:Path += ';C:/Program Files/PostgreSQL/12/bin'
Добавить в начало Path
$Env:Path = ';C:/Program Files/PostgreSQL/12/bin' + $Env:Path