Добавить в path что это
Перейти к содержимому

Добавить в path что это

  • автор:

. что такое переменная среды PATH?

Когда операционная система запускает какую-нибудь программу, она стартует новый процесс и каким-то образом передаёт ему информацию о настройках среды, или окружения (в английском языке используется термин environment). Эта информация состоит из набора переменных, содержащих некоторые значения. Процесс может получить эти значения, обратившись к нужной переменной по имени. Например, чтобы узнать, где находится директория, которую операционная система рекомендует использовать для хранения временных файлов, необходимо получить значение переменной среды TEMP .

Как посмотреть значения переменных среды?

В консоли Windows можно посмотреть значение этой переменной, выполнив команду echo %TEMP% , в консоли PowerShell необходимо для этого выполнить команду echo $Env:TEMP , а в консоли Linux или MacOS – команду echo $TEMP .

Если вы пишете программу на языке программирования Python, значение этой переменной можно получить так:

В языке Java это можно сделать следующим образом:

В языке C# аналогичное действие выглядит следующим образом:

На что влияет переменная среды PATH ?

При помощи переменных среды можно передавать информацию не только запускаемым процессам, но и самой операционной системе. Она тоже читает и использует значения переменных среды, поэтому можно управлять некоторыми аспектами поведения операционной системы, изменяя эти переменные.

Переменная PATH содержит список директорий, в которых операционная система пытается искать исполняемые файлы, если пользователь при запуске не указал явно путь к нужному исполняемому файлу.

Давайте представим себе, что на компьютере с операционной системой Windows установлено две разных версии интерпретатора языка программирования Python. Это можно сделать, если установить их в разные директории, например, C:\Python27 и C:\Python34 . Исполняемый файл для обоих версий называется python.exe .

Для того, чтобы запустить исполняемый файл нужной версии, можно указать полный путь к нему, например, C:\Python34\python.exe :

Но каждый раз указывать полный путь лень, да ещё и помнить его надо.

Альтернатива – добавить в переменную среды PATH путь к директории, где находится этот исполняемый файл, и тогда его можно будет запускать, указывая только имя. А чтобы узнать, где он (по мнению операционной системы) находится, можно использовать команду where в операционной системе Windows либо команду which в операционной системе Linux или MacOS.

Переменная PATH содержит список директорий, в которых операционная система должна искать исполняемые файлы. В качестве разделителя используется точка с запятой (;) в операционной системе Windows и двоеточие (:) в операционных системах Linux и MacOS.

Обратите внимание, что в переменную PATH нужно добавлять не пути к исполняемым файлам, а пути к директориям, где они находятся!

Переменная PATH и программы-утилиты

Не обязательно добавлять в переменную PATH пути ко всем директориям, в которых находятся исполняемые файлы на вашем компьютере. Скорее всего большинство программ вы запускаете “через меню старт”. На этот способ запуска переменная PATH никакого влияния не оказывает. Её важно настроить так, чтобы можно было быстро и удобно запускать программы из консоли.

Например, в эту переменную обычно включается путь к “стандартным” местам, где расположены различные программы-утилиты. В операционной системе Windows это директория C:\Windows\system32 , в операционных системах Linux и MacOS директория /usr/bin .

Именно благодаря этому мы можем, например, в консоли Windows использовать утилиту find для поиска файлов или утилиту telnet для установления удалённого соединения по одноимённому протоколу, просто указывая их имя, а не полный путь c:\Windows\system32\telnet.exe .

Когда у вас появляется новая программа-утилита, возникает вопрос – куда её поместить? С одной стороны, её можно положить в C:\Windows\system32 или /usr/bin . Но если вы не любите “засорять” стандартные директории, тогда сделайте какую-нибудь специальную директорию, складывайте все такие программы в неё, и добавьте путь к этой директории в переменную среды PATH .

Как изменять значения переменных среды?

Пользователям других операционных систем предлагаю погуглить 🙂

Переменную поменял, но эффекта нет. Почему?

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

Поэтому после изменения переменных среды придётся перезапустить те программы, которым необходимо сообщить новые значения переменных.

Алексей Баранцев

Автор: Алексей Баранцев

Если вам понравилась эта статья, вы можете поделиться ею в социальных сетях (кнопочки ниже), а потом вернуться на главную страницу блога и почитать другие мои статьи.
Ну а если вы не согласны с чем-то или хотите что-нибудь дополнить – оставьте комментарий ниже, может быть это послужит поводом для написания новой интересной статьи.

Adding Executable Program Commands to the PATH variable

Understanding the PATH variable and adding commands to use in your terminal

PATH variable

Your computer (Mac or Linux, or a Unix-based system) has an environment variable called PATH , which contains a set of executable program directories that contain the executable programs.

Executable programs are basically the commands you can use in the shell.

These include the essential boot-stage or early-stage required binaries as well as other general system-wide commands.

As per the Filesystem Hierarchy Standard (FHS), these commands are located hierarchically in the system as follows:

In addition to the system-level binaries, executable programs can also include host specific program commands.

When you install a program or application on your Mac through the internet, the application will be available to execute using GUI, usually from the /Application directory.

In order to use the command line command to run the application, however, the executable file for the application must be saved to the PATH variable. In other words, you must add the directory of the executable program file for the application to the PATH variable in order to use the name of the executable file as the command to run it from the shell.

When you install an application through a package manager, such as Homebrew, it is symlinked to /usr/local/bin , which is usually included in PATH .

For other direct program installations, it is your job to either save the original executable file to the PATH variable directly, or symlink the executable file to a separate bin folder, which would be included in PATH .

Let’s take a look at how we can go about adding these local application commands to the PATH variable so that we can use their commands in our shell.

Adding to PATH

In your zsh shell profile ( .zshrc ), you can add the following:

export PATH=

This syntax prepends /path/to/app/executable/file/directory to the existing PATH variable.

  • export command allows all child processes to inherit the marked variable.
  • $PATH refers to the PATH variable value
  • assigning the path /path/to/app/executable/file/directory to the PATH variable with the trailing :$PATH essentially adds the path to the front of the existing PATH value with the separator :
  • You can also append the path to the existing PATH (add to the end) by instead using
    export PATH="$PATH:/path/to/app/executable/file/directory"

path is another variable that is tied to the PATH variable, but it is an array. PATH and path are tied together, so changing either one will change the other.

  • however the variables’ value syntax are different:
  • Note the PATH is separated by : while path is separated by whitespace.
  • You can force the path variable to have only unique values by using typeset -U path command before path assignment. This will keep the path value clean by preventing duplicate directory names being added.

Here, the path /path/to/app/executable/file/directory will likely be a application bin directory starting from the /Applications directory.

  • For example, for Visual Studio Code, the path is:
  • So, you would set:

This allows you to use the ‘code’ command (which is the name of the executable file) to run Visual Studio Code from the command line.

Symlinking the executable program file to a personal bin directory

Instead of adding each executable program file to the PATH separately, you can symlink the executable program file to a separate folder and add this folder to the PATH .

    This separate folder could be a bin folder on your home directory:

You can use ln command to symlink the executable file.

  • ln is a utility program that creates a new directory entry (a linked file), which has the same modes as the original file. The link 'points' to the original copy. How the link 'points' to the original file is the difference between a hard link and a symbolic link.
  • By default ln creates hard links, where any changes to the original file are effectively independent from the linked file.
  • Using the -s flag creates a symbolic link (symlink), which is a soft copy, allowing for the use of the referenced file when an operation is performed on the linked file.

If you have the

/bin directory added to the PATH variable, you just need to to symlink any executable program you want to add command for to the

This will make the organization of the PATH much cleaner and much easier to see what executable programs are included in the PATH .

Системная переменная PATH Windows

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

Искать по всему жёсткому диску было бы слишком долго, поэтому поиск осуществляется только по некоторым директориям.

Список этих особых директорий хранится в системной переменной PATH.

Пример

Предположим, что возникла необходимость запускать какую-то программу, например Firefox , непосредственно из командной строки.

Без предварительной подготовки ввод Firefox в консоль выдаст ошибку.

'firefox' is not recognized as an internal or external command, operable program or batch file.

Чтобы решить эту проблему нужно добавить директорию с испоняемым файлом firefox в PATH

Добавить директорию в PATH

Быстрый способ перейти к редактированию PATH — нажать клавишу Win и ввести в поиск env

Env с сайта www.andreyolegovich.ru

Правый клик на Этот Компьютер (This PC) → Свойства (Properties)

Мой компьютер Свойства изображение с сайта www.andreyolegovich.ru

Дополнительные параметры системы (Advanced system settings)

Control Panel - All Control Panel Items - System изображение с сайта www.andreyolegovich.ru

Дополнительно (Advanced) → Переменные среды (Environment Variables)

Environment Variables изображение с сайта www.andreyolegovich.ru

Если хотите менять для всей системы, то в окошке «Переменные среды» (System Variables) найдите строку PATH в блоке «Системные переменные» (System variables) выделите кликом и нажмите кнопку «Изменить. » (Edit. )

Если хотите менять только для своего пользователя, то делайте это в блоке «Переменные среды пользователя %USERNAME%» (User variables for %USERNAME%)

Environment Variables изображение с сайта www.andreyolegovich.ru

Создайте новый путь (New)

Path Environment Variable изображение с сайта www.andreyolegovich.ru

Введите адрес директории в которой лежит нужная программа. В нашем случае это

C:\Program Files (x86)\Mozilla Firefox

Path Environment Variable изображение с сайта www.andreyolegovich.ru

Перезапустите консоль или открываем новую и пишем там firefox.

Браузер должен запуститься.

Изучить содержимое PATH

В PowerShell достаточно выполнить

Name Value —- —— Path C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPo.

В cmd.exe посмотреть список переменных окружения можно выполнив команду set без параметров.

Выдача содержит системные переменные и переменные пользователя а также дополнительную информацию. Содержимое PATH выделено зелёным.

результат выдачи команды set без параметров

Изображение баннера

Ошибки

-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 из bash под Windows — это может пригодиться если Вы хотите временно добавить путь к psql в PATH чтобы запустить Postrgres скрипт.

В моём случае psql.exe находится в папке C:\Program Files\PostgreSQL\12\bin

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Как добавить путь в переменную окружения %PATH% на Windows?

Как добавить что-то в путь (PATH или system PATH)? Что такое %PATH% и %что-то%?

  1. Add the following string to the PATH , C:\Program Files (x86)\CMake 2.8\bin .

  2. Do you have make in your %PATH% environment variable? On my system, I need to add %MINGW_DIR%\bin to %PATH% .

  3. Add C:<Qt_directory>/mingw/bin to the system PATH .

Я так понимаю, что надо зайти в Свойства системы → Дополнительно → Переменные среды.

А потом, если говориться про PATH, то добавить в «Переменные среды пользователя такого-то», а если system PATH, то «Системные переменные».

Потом нужно нажать «Создать». Что вписывать в «Имя переменной»? В значение переменной надо записать те строки, которые даны в указании, так?

Qt\_\_directory — это, наверно, путь до папки с Qt. Между двумя % тоже путь до папки? %PATH% и %MINGW_DIR% — это одно и тоже, если PATH понимают как путь к MinGW?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *