Переменные окружения


Содержание

. что такое переменная среды 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.

Эта переменная содержит список директорий, в которых операционная система должна искать исполняемые файлы. В качестве разделителя используется точка с запятой (;) в операционной системе 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 .

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

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

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

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

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

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

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

Что такое системные и пользовательские переменные Windows?

Системные и пользовательские переменные среды всегда были сложной темой обсуждения для повседневных пользователей ОС Windows. Что они делают? В учебнике в интернете сказано добавить переменную PATH, но что это? Где я могу найти эти переменные? На все эти вопросы в ближайшее время будет дан ответ. Мы постарались дать вам общее представление о том, что такое системные переменные и переменные среды пользователя и как вы можете их использовать.

В этом посте мы обсудим переменные среды, системные и пользовательские переменные, а также способы их добавления и изменения. Затем мы перейдем к динамическим системным переменным и посмотрим, как их использовать в командной строке.

Что такое переменная среды

Переменная среды состоит из двух отдельных слов: «Среда» и «Переменная». Давайте сначала обсудим «переменную». Это означает, что сущность может хранить значение и варьироваться от компьютера к компьютеру. Windows предоставляет «Среду» для приложений для выполнения и выполнения операций, и именно это делает первое слово. Объединяя оба, переменные среды — это те динамические объекты, которые хранят значения, предоставленные средой. Теперь среда предоставляет значения, которые помогают другим программам получать важную информацию о системе. Как будто есть переменная окружения, называемая windir, которая соответствует каталогу, в котором установлена ​​Windows. Чтобы увидеть это в действии, откройте окно обозревателя и введите %windir% в адресной строке. Папка установки Windows откроется.

Точно так же вы можете ссылаться на каталог Windows, используя переменную ‘windir’ в других программах и скриптах. Существует множество других переменных, к которым можно получить доступ, «TEMP» или «TMP» — это переменная, которая указывает на каталог, в котором хранятся все временные файлы. Самая популярная переменная Path — это та, которая указывает на каталоги, содержащие исполняемые файлы. Так что вы можете запустить программу из командной строки в любом другом каталоге. Мы объяснили путь позже в этом посте. Все эти переменные пригодятся, когда вы что-то разрабатываете или часто используете оболочку.

Что такое переменные среды системы и пользователя

Очень похоже на то, как работает реестр в Windows, у нас есть переменные среды системы и пользователя. Системные переменные являются общесистемными и не меняются от пользователя к пользователю. Принимая во внимание, что пользовательские среды настраиваются по-разному от пользователя к пользователю. Вы можете добавить свои переменные под пользователем, чтобы другие пользователи не влияли на них.

Просто для вашей информации, так как мы обсуждаем эту тему подробно. Системные переменные имеют меньший приоритет, чем пользовательские переменные. Таким образом, если есть некоторые пользовательские переменные с тем же именем, что и системные переменные, то будут учитываться пользовательские переменные. Переменная пути генерируется другим способом. Эффективным путем будет переменная «Пользовательский путь», добавляемая к переменной «Системный путь». Таким образом, порядок записей будет системных записей, за которыми следуют пользовательские записи.

Как добавить и изменить переменные среды

Небольшое предупреждение, прежде чем мы пойдем глубже. Создайте точку восстановления системы и постарайтесь не вмешиваться в существующие параметры, настроенные для вашей системы. Пока, если вы не уверены в своих действиях. Чтобы открыть окно «Переменные среды», выполните следующие действия:

Щелкните правой кнопкой мыши значок «Этот компьютер» и выберите «Свойства».
Теперь в этом окне выберите «Расширенные настройки системы» в левой части.
Нажмите последнюю кнопку с надписью «Переменные среды», чтобы открыть наше предназначенное окно.

Как только вы откроете это, вы сможете просматривать пользовательские и системные переменные отдельно. Имя переменной находится в первом столбце, а ее значение — во втором. Соответствующие кнопки под таблицей позволяют вам «Добавить», «Редактировать» и «Удалить» эти переменные.

Использование переменной Path

Путь является наиболее используемой переменной среды. Как я уже упоминал, он указывает на каталоги, которые содержат исполняемые файлы. После того, как вы правильно настроили переменную Path, вы можете использовать эти исполняемые файлы из любой точки системы. Давайте попробуем понять это на примере. Откройте окно переменных среды и найдите «Путь» в системных переменных.

Нажмите «Изменить», а затем нажмите «Новый», не играя с другими элементами управления прямо сейчас. Теперь нажмите кнопку обзора и выберите папку, в которой находится нужный исполняемый файл. Нажмите «ОК» и сохраните все. Я добавил исполняемый файл ‘Visual Studio Code’ в путь.


Теперь, чтобы запустить ваше приложение, откройте командную строку и введите имя исполняемого файла, который был в папке. Вы можете предоставить дополнительные аргументы, если программа поддерживает это. Программа будет запускаться из командной строки, фактически не находясь в каталоге, из которого вы выполнили команду. В этом красота переменной Path.

Список всех переменных среды

Откройте командную строку и введите «SET» и нажмите Enter. Будет отображен весь список переменных с их текущими значениями, и вы можете обратиться к нему для внесения изменений в свой компьютер.

Динамические переменные среды

В отличие от обычных переменных, динамические переменные среды предоставляются CMD, а не системой. Вы не можете изменять значения этих переменных, и они расширяются до различных дискретных значений при запросе. Мы обычно используем эти переменные для пакетной обработки, и они не хранятся в среде. Даже команда «SET» не покажет эти переменные. Некоторые из динамических переменных среды:

Некоторые из динамических переменных среды:

  • %CD%: ввод этой команды даст вам текущий каталог, в котором вы работаете.
  • %DATE%: эта переменная будет отображать текущую дату в соответствии с настройками формата даты.
  • %TIME%: аналогично, оно показывает текущее время в соответствии с настройками формата времени.
  • %RANDOM%: эта переменная печатает случайное число .
  • %ERRORLEVEL%: определяет уровень ошибки, установленный последней выполняемой командой.
  • %CMDEXTVERSION%: эта переменная распространяется на версию расширений командной строки.

Это было в значительной степени о системных и пользовательских переменных среды в Windows. Windows имеет гораздо больше переменных — не забудьте проверить их с помощью команды «SET».

Илон Маск рекомендует:  Ссылка на якорь

Список переменных среды в Windows

Переменные среды (environment variables) являются очень полезными инструментами для сбора информации об установленной операционной системе. Далее приводится полный список переменных среды Windows.

Переменные среды Windows

ALLUSERSPROFILE Указывает расположение профиля All Users (локальная переменная)
APPDATA Указывает расположение каталога, в котором программы хранят данные по умолчанию (локальная переменная)
CD Указывает имя текущего каталога (локальная переменная)
CMDCMDLINE Указывает параметры командной строки, которые использовались для запуска текущего экземпляра программы CMD.EXE (локальная переменная)
CMDEXTVERSION Указывает номер версии текущего расширения командного процессора (системная переменная)
COMPUTERNAME Указывает имя компьютера (системная переменная)
COMSPEC Указывает точный путь к исполняемому файлу командного интерпретатора (системная переменная)
DATE Указывает текущую дату. Используется тот же формат, что и для команды date /t. Значение генерируется командным интерпретатором (системная переменная)
ERRORLEVEL Указывает код уровня ошибки последней программы. Ненулевое значение, скорее всего, указывает на ошибку (системная переменная)
HOMEDRIVE Указывает букву диска локальной рабочей станции, подключенной к домашнему каталогу. Переменная определяется на основе пути к домашнему каталогу. Домашний каталог пользователя определяется в оснастке Локальные пользователи и группы (Local Users and Groups) (системная переменная)
HOMEPATH Указывает полный путь к домашнему каталогу пользователя. Переменная определяется на основе пути к домашнему каталогу. Домашний каталог пользователя определяется в оснастке Локальные пользователи и группы (Local Users and Groups) (системная переменная)
HOMESHARE Указывает сетевой путь к общему домашнему каталогу пользователя. Переменная определяется на основе пути к домашнему каталогу. Домашний каталог пользователя назначается в оснастке Локальные пользователи и группы (Local Users and Groups) (системная переменная)
LOGONSERVER Указывает имя контроллера домена, на котором авторизован текущий сеанс работы с системой (локальная переменная)
NUMBER_OF_PROCESSORS Указывает количество процессоров, установленных в компьютере (системная переменная)
OS Указывает версию операционной системы. ОС Windows XP/XP обозначаются, как Windows_NT (системная переменная)
PATH Указывает путь поиска исполняемых файлов (системная переменная)
PATHEXT Указывает список расширений, которые распознаются операционной системой, как расширения исполняемых файлов (системная переменная)
PROCESSOR_ARCHITECTURE Указывает тип архитектуры процессора. Возможные значения: x86 и IA64 (системная переменная)
PROCESSOR_IDENTIFIER Указывает описание процессора (системная переменная)
PROCESSOR_LEVEL Указывает номер модели процессора, установленного в компьютере (системная переменная)
PROCESSOR_REVISION Указывает номер версии модели процессора (системная переменная)
PROMPT Указывает параметры приглашения командной строки для текущего интерпретатора. Генерируется интерпретатором CMD.EXE (локальная переменная)
RandOM Указывает случайное десятичное число от 0 до 32767. Генерируется программой CMD.EXE (системная переменная)
SYSTEMDRIVE Указывает букву диска, на котором расположен корневой каталог Windows (системная переменная)
SYSTEMROOT Указывает путь к корневому каталогу Windows (системная переменная)
TEMP или TMP Указывает путь к временным каталогам, принятым по умолчанию. Эти каталоги используются приложениями, доступными зарегистрированному в системе пользователю. Некоторым приложениям требуется значение переменной TEMP, в то время как другим — TMP (системная и пользовательская переменные соответственно)
TIME Указывает текущее время. Используется тот же формат, что и для команды time /t. Генерируется интерпретатором CMD.EXE (системная переменная)
USERDOMAIN Указывает имя домена, в котором хранится учетная запись пользователя (локальная переменная)
USERNAME Указывает имя пользователя, который зарегистрирован в системе в текущий момент времени (локальная переменная)
USERPROFILE Указывает путь к профилю текущего пользователя (локальная переменная)
WINDIR Указывает путь к каталогу операционной системы (системная переменная)

Для получения доступа к описанным переменным среды необходимо разместить символ процента (%) перед именем переменной и после него. Например, следующая команда указывает тип процессора, установленного в системе.

Изучаем переменные среды в Windows 10

Переменная среды (переменная окружения) – это короткая ссылка на какой-либо объект в системе. С помощью таких сокращений, например, можно создавать универсальные пути для приложений, которые будут работать на любых ПК, независимо от имен пользователей и других параметров.

Переменные среды Windows

Получить информацию о существующих переменных можно в свойствах системы. Для этого кликаем по ярлыку Компьютера на рабочем столе правой кнопкой мыши и выбираем соответствующий пункт.

Переходим в «Дополнительные параметры».

В открывшемся окне с вкладкой «Дополнительно» нажимаем кнопку, указанную на скриншоте ниже.

Здесь мы видим два блока. Первый содержит пользовательские переменные, а второй системные.

Если требуется просмотреть весь перечень, запускаем «Командную строку» от имени администратора и выполняем команду (вводим и нажимаем ENTER).

На рабочем столе появится файл с названием «set.txt», в котором будут указаны все переменные окружения, имеющиеся в системе.

Все их можно использовать в консоли или скриптах для запуска программ или поиска объектов, заключив имя в знаки процента. Например, в команде выше вместо пути

Примечание: регистр при написании переменных не важен. Path=path=PATH

Переменные PATH и PATHEXT

Если с обычными переменными все понятно (одна ссылка – одно значение), то эти две стоят особняком. При детальном рассмотрении видно, что они ссылаются сразу на несколько объектов. Давайте разберемся, как это работает.

«PATH» позволяет запускать исполняемые файлы и скрипты, «лежащие» в определенных каталогах, без указания их точного местоположения. Например, если ввести в «Командную строку»

система осуществит поиск по папкам, указанным в значении переменной, найдет и запустит соответствующую программу. Этим можно воспользоваться в своих целях двумя способами:

    Поместить необходимый файл в одну из указанных директорий. Полный список можно получить, выделив переменную и нажав «Изменить».

Создать свою папку в любом месте и прописать путь к ней. Для этого (после создания директории на диске) жмем «Создать», вводим адрес и ОК.

%SYSTEMROOT% определяет путь до папки «Windows» независимо от буквы диска.

Затем нажимаем ОК в окнах «Переменные среды» и «Свойства системы».

Для применения настроек, возможно, придется перезапустить «Проводник». Сделать это быстро можно так:

Открываем «Командную строку» и пишем команду

taskkill /F /IM explorer.exe

Все папки и «Панель задач» исчезнут. Далее снова запускаем «Проводник».

Еще один момент: если вы работали с «Командной строкой», ее также следует перезапустить, то есть консоль не будет «знать», что настройки изменились. Это же касается и фреймворков, в которых вы отлаживаете свой код. Также можно перезагрузить компьютер или выйти и снова зайти в систему.

Теперь все файлы, помещенные в «C:\Script» можно будет открывать (запускать), введя только их название.

«PATHEXT», в свою очередь, дает возможность не указывать даже расширение файла, если оно прописано в ее значениях.

Принцип работы следующий: система перебирает расширения по очереди, пока не будет найден соответствующий объект, причем делает это в директориях, указанных в «PATH».

Создание переменных среды

Создаются переменные просто:

    Нажимаем кнопку «Создать». Сделать это можно как в пользовательском разделе, так и в системном.


Вводим имя, например, «desktop». Обратите внимание на то, чтобы такое название еще не было использовано (просмотрите списки).

В поле «Значение» указываем путь до папки «Рабочий стол».

Нажимаем ОК. Повторяем это действие во всех открытых окнах (см. выше).

  • Перезапускаем «Проводник» и консоль или целиком систему.
  • Готово, новая переменная создана, увидеть ее можно в соответствующем списке.

    Для примера переделаем команду, которую мы использовали для получения списка (самая первая в статье). Теперь нам вместо

    потребуется ввести только

    Заключение

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

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Переменные окружения в приложении Node.js

    Переменные окружения или переменные среды (environment variables) — это некие глобальные значения, расположенные на уровне операционной системы, доступные программам, например настройки системы.

    Самой известной переменной, можно считать PATH. Операционная система использует значение этой переменной для того, чтобы найти нужные исполняемые файлы в командной строке или окне терминала. Например, когда мы выполняем в терминале команду node, npm или другую, именно переменная PATH подсказывает где искать исполняемые файлы. Об этом, подробнее рассказывается в этом посте, на платформах linux и macos. Наверняка вы сталкивались с этой коварной переменной в начале своей карьеры ��.

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

    Проблема

    В процессе разработки приложения, будь то клиентское или серверное, может понадобится использовать приватные данные, например секретный токен для запросов на сторонний сервер. Вот так:

    Но мы не можем сохранить такой код в git, иначе мы просто расскажем всему миру наш секретный ключ.

    Время переменных окружения

    Мы можем хранить секретные данные, настройки сборки и другие данные в переменных окружения. Программа на nodejs имеет к ним доступ.

    В nodejs есть глобальный объект process (доступный из любого места программы, как window в браузере), хранящий информацию о текущем процессе. У этого объекта есть свойство env — оно и дает доступ к переменным окружения. Попробуйте запустить node в терминале и выполнить console.log(process.env):

    Мы увидим как в терминал выведется объект со всеми значениями переменных окружения.

    Теперь если представить, что наш секретный ключ уже находится в переменных окружения, то предыдущий пример можно переписать так:

    Мы получаем наш секретный ключ из окружения. Отличный пример ��.

    Еще, вы наверняка использовали или встречали конструкцию node.env.NODE_ENV === ‘production’ для определения режима сборки своего приложения.

    Но как же установить эти переменные окружения?

    Установка переменных окружения

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

    Отобразить весь список переменных можно командой printenv.

    Показать конкретную переменную можно так:

    Для добавления переменной можно использовать комманду export.

    Однако нужно помнить, такой способ задает переменную только на текущий сеанс операционной системы.

    Так же, можно определить переменные во время запуска программы, в одной строке. Такая переменная будет жить только во время работы программы.

    Для сохранения постоянной переменной используйте следующее решение. Поскольку Mac и большинство Linux дистрибутивов используют оболочку bash, переменные окружения могут быть добавлены в каталог .bash_profile для текущего пользователя. Путь к этому файлу можно найти с помощью команды:

    В этот файл нужно добавить определение переменной, просто на новой строке.

    При старте системы переменная будет инициализирована. Не забудьте закрыть и снова открыть терминал, прежде чем использовать новую переменную среды. Повторное открытие терминала загружает обновленный файл .bash_profile.

    Что бы посмотреть список переменных в коммандной строке (Command Prompt) используйте комманду set.

    Вывести значение по имени переменной можно так:

    Добавление новой переменной скрыто за несколькими графическими окнами. Для добавления переменной нажмите Win+R, в открывшемся окне введите sysdm.cpl и нажмите Enter.

    В открывшемся окне перейдите на вкладку «Дополнительно» и затем нажмите кнопку «Переменные среды» в правом нижнем углу окна.

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

    Создайте пользовательскую переменную, нажав кнопку «Создать» ниже раздела, предназначенного для пользователя. Укажите имя переменной и значение.


    Так же можно использовать утилиту setx. Она появилась еще со времен Windows Vista и Windows Server 2008:

    Илон Маск рекомендует:  Шаблон сайта электроники HTML, CSS, JS

    Такой способ сохраняет переменную в памяти ОС и не удаляет ее после перезагрузки. Что бы начать использовать новую переменную, так же нужно перезагрузить терминал.

    Установить временную переменную и запустить процесс node так же возможно:

    Избавляемся от различий

    Как вы уже заметили. Запуск node приложения с временными переменными отличается в разных платформах. Что бы решить эту проблему я использую пакет cross-env. Эта небольшая библиотечка позволяет определять временные переменные окружения в одном виде. Определите скрипт в package.json:

    Так должно без проблем работать на windows, mac и linux. Конечно хранить никакие ключи тут не нужно.

    Все переменные в одном месте

    Если вы разрабатываете несколько проектов Node.js на одном компьютере, возможно столкнуться с тем, что у вас есть перекрывающиеся имена переменных окружения. Например для разных приложений могут понадобиться разные ключи MYAPIKEY. Хороший способ исправить это, использовать файл .env, для конфигурации конкретного проекта. Эти файлы позволяют указать различные переменные окружения и их значения.

    Просто создайте файл .env в корневом каталоге проекта и добавьте в него все необходимые переменные. В нашем случае:

    Не забудьте добавить этот файл в свой .gitignore, ведь мы не хотим раздавать всем наши ключи. В некоторых репозиториях возможно встретить файлы с именами .env.example — это всего лишь шаблон/схема для ваших значений, просто скопируйте все в .env и подставьте свои значения. Важно понимать, что такие названия это всего лишь общая договоренность и ничего больше. Некоторые редакторы даже подставляют иконки для таких файлов:

    Далее, необходимо прочитать переменные и добавить их в переменные окружения. Самый распространенный способ — использовать модуль npm, под названием dotenv. Просто установите модуль через npm:

    Затем добавьте следующую строку в самое начало вашего файла (первой точки входа в приложение):

    Пакет dotenv автоматически загрузит файл .env из корневого каталога проекта, и инициализирует значения. Подробнее читайте в документации к пакету. Важной особенностью этого модуля является то что он не перезаписывает уже существующие переменные окружения (хотя и есть способ это сделать) и пропускает их. Есть и другие решения, например env2 и node-env-file.

    Так же важно понимать, что использовать такой подход можно только при разработке и никак не в продакшене. Дело в том что файл .env доступен для чтения и если злоумышленник получит доступ к серверу, он может найти этот файл просто по имени. Само сохранение секретных значений в открытый файл противоречит безопасности.

    Замечание

    При использовании node.env есть проблемы с производительностью. Например нам необходимо часто делать запрос на сторонний сервис и токен мы берем напрямую из node.env.TOKEN. То есть проблема заметна при большой нагрузке. Есть способы решения этой проблемы, но это уже другая история.

    Заключение

    Мы разобрались что такое переменные окружения/среды (environment variables), узнали как создавать временные и постоянные переменные на разных платформах и посмотрели как можно автоматизировать установку значений.

    Конечно, эта тема очень большая, и я пробежался по основным возможностям. Но думаю этого достаточно что бы начать с ними работать ��.

    Я надеюсь, вам понравился пост. Если да, похлопайте ��, чтобы помочь другим найти эту информацию. И не стесняйтесь оставлять комментарии — буду рад любым замечаниям!

    Total Commander/Переменные окружения

    Переменные окружения («Переменные среды», «environment variables») — текстовые переменные, наследуемые дочерниними процессами от родительского.

    Это означает, что переменные заданные для всей операционной системы будут доступны во всех запущенных приложениях; для пользователя – всех приложениям, запущенным этим пользователем; для какого-нибудь другой программы – только в запущенных через нее.

    Не следует путать с псевдопеременными окружения. Последние не наследуются, а значит могут использоваться только в Total Commander.

    Содержание

    Применение [ править ]

    Помимо пакетных файлов (bat) переменными окружения можно пользоваться там, где допускается использование синтаксиса коммандной строки, и целесообразно везде, где требуется или может потребоваться переносимость (portable). Total Commander – пример этому самый подходящий.

    Синтаксис и настройка [ править ]

    В Windows к переменным окружения можно обращаться из командной строки заключая имя переменной в знаки «%»

    Имя переменной регистронезависимо (%VAR% и %Var% – одна и та же переменная).
    Для управления ими в cmd.exe встроена команда set, я распространятся о ней не буду, к ней написан неплохой мануал ( set /? ). Инициализируемые при запуске системы значения хранятся в реестре в ключе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ . Если предпочитаете визуальный интерфейс консоли и реестру, обратите внимание на файлсистемный плагин Environment Variables, позволяющий управлять переменными среды прямо из панели TC.

    Использование в TC [ править ]

    Кроме как непосредственно в командной строке переменные окружения можно использовать

    • в ключах wincmd.ini, где указаны какие-либо файловые пути

    например расположение плагинов, локализаций, иконок и т. д. или текущие директории;

    • в пользовательских командах, пунктах меню «запуск» и «избранные каталоги», кнопках меню

    в графах «Команда», «Путь запуска», «Файл значка» – напрямую %VAR% в графе «Параметры» – экранируя символ процента %%VAR%%;

    • в настройках большинства плагинов и утилит.
    • в диалогах (копирования, перемещения, создания, группового переименования, прочих);
    • в сочетании с тоталовской командой md, если нужно, используйте соотв. псевдопеременную или cmd /c md %VAR% ;
    • в настройках плагина Plugin Manager (расположение wincmd.ini);

    Список переменных [ править ]

    Обратите внимание, что пути к директориям возвращаются, как правило, без обратной косой черты в конце.

    Переменные Total Commander [ править ]

    Total Commander при запуске создает для своего процесса три переменные окружения:

    Имя Описание Пример
    %COMMANDER_DRIVE% имя диска, с которого запущен TC C:
    %COMMANDER_PATH% путь к каталогу, из которого запущен TC C:\WINCMD
    %COMMANDER_INI% путь к текущему главному конфигурационному файлу TC C:\WINCMD\wincmd.ini

    Пути к системным и пользовательским каталогам [ править ]


    Имя Описание Пример
    %ALLUSERSPROFILE% размещение профиля «All Users» C:\Documents and Settings\All Users
    %APPDATA% пользовательская папка «Application Data» C:\Documents and Settings\MAIN\Application Data
    %COMMONPROGRAMFILES% обычно %ProgramFiles%\Common Files C:\Program Files\Common Files
    %HOMEDRIVE% диск, где расположен корневой каталог C:
    %HOMEPATH% корневой каталог, относительно диска \Documents and Settings\MAIN
    %HOMESHARE% сетевой путь к общему каталогу пользователя
    %PROGRAMFILES% папка Program Files C:\Program Files
    %SYSTEMDRIVE% диск, откуда запущена Windows C:
    %SYSTEMROOT% каталог, откуда запущена Windows C:\WINDOWS
    %TEMP% временный каталог C:\DOCUME

    1\Temp %TMP% временный каталог C:\DOCUME

    1\Temp %USERPROFILE% профиль текущего пользователя C:\Documents and Settings\MAIN %WINDIR% обычно %SYSTEMROOT% C:\WINDOWS

    Прочие переменные [ править ]

    Другие переменные окружения, которые могут пригодиться. Список неполон.

    Переменные окружения

    Переменные окружения Windows дают программам информацию об операционной системе. Ниже в таблице приведен стандартный список переменных окружения, которые создает Windows. Различные программы также создают свои переменные окружения, которые используют в служебных целях для хранения какой-либо информации.

    ALLUSERSPROFILE В режиме работы под локальным пользователем система возвратит место размещения всех каталогов профилей пользователей (путь папки All Users, например C:\Documents and Settings\All Users).
    APPDATA В режиме работы под локальным пользователем система возвратит место на диске, где приложения сохраняют свои данные по умолчанию (например C:\Documents and Settings\имяпользователя\Application Data).
    CD В режиме работы под локальным пользователем система возвратит строку, где будет путь до текущей директории.
    CMDCMDLINE В режиме работы под локальным пользователем система возвратит полную командную строку, которая используется для запуска текущего интерпретатора команд cmd.exe.
    CMDEXTVERSION Система вернет номер версии текущих расширений интерпретатора команд (Command Processor Extensions).
    COMPUTERNAME Система возвратит имя компьютера (оно используется для идентификации компьютера в локальной сети), например WORKSTATION.
    ComSpec Система вернет полный путь до исполняемого файла интерпретатора команд (например C:\WINDOWS\system32\cmd.exe).
    DATE Система вернет текущую дату. Эта переменная окружения использует тот же самый формат, который использует команда date /t. Cmd.exe генерирует значение этой переменной.
    ERRORLEVEL Система вернет код ошибки последней используемой команды. Значение кода, не равное 0 обычно показывает какую-то ошибку.
    HOMEDRIVE Система покажет букву диска, который связан с домашней директорией пользователей. Эта переменная устанавливается на базе значения домашней директории, где находятся профили пользователей (пользователи и группы управляются оснасткой Local Users and Groups, Локальные пользователи и группы).
    HOMEPATH Система вернет полный путь до домашнего каталога текущего пользователя (user’s home directory). Эта переменная устанавливается на базе значения домашней директории.
    HOMESHARE Система вернет сетевой путь до совместно используемой домашней директории пользователя (user’s shared home directory). Эта переменная устанавливается на базе значения домашней директории.
    LOGONSEVER В режиме работы под локальным пользователем система возвратит имя контроллера домена, который проверил текущее вхождение в систему пользователя. Если компьютер не находится в домене (принадлежит сети с рабочей группой), то эта переменная окружения вернет сетевое имя компьютера (например \\WORKSTATION).
    NUMBER_OF_PROCESSORS Система возвратит количество процессоров, установленных в компьютере.
    OS Система возвратит общее имя текущей операционной системы. Windows XP и Windows 2000 показывают значение переменной окружения OS как Windows_NT.
    PATH Система возвратит пути, где осуществляется поиск исполняемых файлов. Возможно, что это самая важная из всех переменных окружения. В переменной PATH чаще всего находится несколько записей путей. Записи отделяются друг от друга точкой с запятой.
    PATHEXT Система возвратит список расширений файлов, которые считаются исполняемыми.
    PROCESSOR_ARCHITECTURE Система возвратит архитектуру используемого системой процессора. Значения: x86, IA64.
    PROCESSOR_IDENTIFIER Система вернет описание процессора. Например: x86 Family 6 Model 42 Stepping 7, GenuineIntel.
    PROCESSOR_LEVEL Система вернет номер модели процессора компьютера.
    PROCESSOR_REVISION Система вернет номер ревизии процессора.
    PROMPT Система вернет строку приглашения (command-prompt) для текущего интерпретатора команд. Эту переменную генерирует интерпретатор команд cmd.exe.
    RANDOM Система вернет случайное десятичное число в диапазоне 0 .. 32767. Эту переменную генерирует интерпретатор команд cmd.exe.
    SystemDrive Система вернет букву диска, на котором находится корневая директория Windows.
    SystemRoot Система вернет путь до размещения корневого каталога (директории) Windows (Windows root directory).
    TEMP или TMP Система сама и в режиме работы под локальным пользователем вернет директорию по умолчанию, где приложения и пользователи могут сохранять временные файлы (например C:\DOCUME

    1\Temp). Некоторые приложения требуют наличия переменной окружения TEMP, другие наличия переменной окружения TMP.

    TIME Система возвратит текущее время. Эта переменная использует тот же формат, который использует команда time /t. Эту переменную генерирует интерпретатор команд cmd.exe.
    USERDOMAIN В режиме работы под локальным пользователем система возвратит домена, который хранит учетную запись пользователя (user’s account).
    USERNAME В режиме работы под локальным пользователем система возвратит имя пользователя (логин), который в настоящее время вошел в систему.
    USERPROFILE В режиме работы под локальным пользователем система возвратит место расположения каталога профиля текущего пользователя.
    WINDIR Система вернет место расположения на диске директории операционной системы. Значение этой переменной окружения совпадает со значением переменной окружения SystemRoot.

    [Как просматривать и редактировать переменные окружения]

    Просматривать переменные окружения удобнее всего с помощью команды set. Ниже на примере настройки переменной окружения PATH будет показано редактирование переменной окружения.

    В переменной окружения PATH (в командных файлах и в строке интерпретатора cmd для составления путей на неё ссылаются как на %Path%) хранятся пути поиска исполняемых файлов. Это нужно для того, чтобы не надо было вводить длинную строку пути до исполняемого файла. Например, это требуется для интерпретатора java.exe и других утилит JDK. Т. е. если в переменной Path прописан путь до java.exe, то можно не утруждать себя вводом полного пути до java.exe, операционная система Windows будет знать, где искать исполняемый файл.

    Все переменные окружения, в том числе и Path, могут быть просмотрены, изменены, удалены и добавлены командой SET. В переменной Path может быть прописано множество путей. Каждая запись пути отделяется от другой точкой с запятой. Вот например, как можно просмотреть содержимое переменной окружения Path:

    Однако новичкам намного проще использовать для редактирования переменной окружения Path инструмент Пуск -> Панель управления -> Система -> закладка Дополнительно -> кнопка внизу Переменные среды.

    Откроется окно, в котором можно просмотреть (и отредактировать) как настройку Path для текущего пользователя (в верхней части окна «Переменные среды пользователя»), так и настройку Path для всей системы (в нижней части окна «Системные переменные»).

    Для переменной окружения Path рекомендую вносить изменения в «Системные переменные», это повлияет на рабочее окружение всех пользователей, которые могут работать на этом компьютере.

    Описание программы, переменные окружения

    Выполнение программы начинается с создания в памяти её образа и связывания с процессом структур ядра ОС, инициализации и передачи управления инструкциям программы. Завершение программы приводит к освобождению памяти и соответствующих структур ядра. Образ программы в памяти содержит сегменты инструкций и данных, созданных компилятором, а также стек, которым пользуется программа в ходе выполнения.

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

    Описание головной функции программы может выглядеть или так:

    main (int argc, char *argv[], char *envp[]);

    extern char **environ; // глобальная переменная, указывающая на строки

    // с переменными окружения.

    main (int argc, char *argv[]);

    argc — определяет число параметров, переданных программе, включая её имя. Указатели на каждый из этих параметров хранятся в массиве, являющемся указателем на эти аргументы.

    Второй массив — массив указателей на переменные окружения, передаваемые программе. Каждая переменная содержит строку вида:

    Основные переменные окружения следующие.

    HOME — имя каталога, который становится текущим после входа пользователя в систему.

    PATH — последовательность полных файловых путей, разделенных двоеточием, которые используются некоторыми программами для поиска файлов, заданных относительным именем.

    TERM — тип терминала

    TZ — информация о часовом поясе.

    LOGNAME — регистрационное имя пользователя.

    LC_NUMERIC — значение категории локализации, определяющей правила национального представления чисел с плавающей точкой.

    LC_TIME — значение категории локализации, определяющей правила национального представления времени и даты.

    extern char **environ;

    void main(int argc, char *argv[])

    char bufer[200], var[200];

    printf(«Переменная MYVAR не определена. Введите значение: «);

    printf(«Новое значение %s \n»,var);

    printf(«MYVAR=%s. Изменить? «,ch);

    printf(«Новое значение MYVAR=%s»,var);

    char *getenv (const char *name);

    int putenv(const char *string);

    Для получения и установки значений переменной окружения применяются две функции: getenv возвращает значение переменной окружения, имеющей имя name; putenv помещает переменную и ее значение в окружение программы. Переменные окружения позволяют передать программе некоторую информацию, однако большую часть информации программа получает от пользователя в ходе ее выполнения.

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


    Можно модифицировать переменные окружения.

    Пример:

    int setenv(const char * NAME, const char * VALUE, int OV );

    int putenv(const char * NAME );

    int unsetenv(const char * NAME);

    Setenv – добавляет новую переменную окружения или заменяет уже существующую переменную окружения заданную первым аргументом, присваивает ей значение заданное вторым аргументом, третий аргумент – это флаг, показывающий нужно ли перезаписывать переменную, если она уже существует (если 0,то не перезаписывается, в противном случае изменяется). При успешном завершении возвращает 0 и -1 при ошибке.

    Putenv — добавляет новую переменную окружения или заменяет уже существующую переменную окружения. Использует аргумент который должен иметь вид ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ. При успешном завершении возвращает 0 и -1 при ошибке.

    Unsetenv – удаляет переменную заданную в начале аргумента из окружения. При успешном завершении возвращает 0 и -1 при ошибке.

    Не нашли то, что искали? Воспользуйтесь поиском:

    Лучшие изречения: Студент — человек, постоянно откладывающий неизбежность. 10527 — | 7315 — или читать все.

    188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

    Отключите adBlock!
    и обновите страницу (F5)

    очень нужно

    Переменные среды Windows¶

    Переменная окружения (переменная среды́, англ. environment variable) — текстовая переменная операционной системы, хранящая какую-либо информацию — например, данные о настройках системы или сведения о текущем пользователе.

    Работа с переменными¶

    В качестве примера можно привести переменную %APPDATA% , которая указывает путь до папки, в которой хранятся настройки некоторых программ текущего пользователя. Обычно это C:\Documents And Settings\Пользователь\Application Data , где Пользователь это изменяемое значение. Для каждой учетной записи используется своё имя пользователя.

    Чтобы каждый раз не узнавать имя учетной записи текущего пользователя и не подставлять в путь к папке Application Data соответствующее значение и используется переменная окружения %APPDATA% .

    Это позволяет, к примеру, быстро открывать папку Application Data , для этого в меню «Пуск →Найти» или в «Пуск →Выполнить» введите %APPDATA% и нажмите клавишу Enter .

    Чтобы получить значение переменной окружения через командную строку, используется команда echo , например:

    Введенная в командной строке, эта комбинация отобразит архитектуру процессора текущего компьютера. Возможен один из трёх вариантов: x86 , IA64 , AMD64 .

    Список переменных¶

    Далее приводится список основных переменных, более подробный список приведен в статье Переменная среды Windows.

    Основные переменные ¶

    Переменная Описание
    %APPDATA% Возвращает используемое по умолчанию размещение данных приложений. В Windows XP это C:\Documents and Settings\%UserName%\Application Data . В Windows 7 — C:\Users\%UserName%\AppData\Roaming .
    %PROCESSOR_ARCHITECTURE% Архитектура процессора. Возможные варианты: x86 , IA64 , AMD64 .
    %USERNAME% Имя текущего пользователя.
    %CD% Указывает путь к текущему каталогу. Идентична команде CD без аргументов.
    %USERPROFILE% Путь к профилю текущего пользователя.
    %WINDIR% Каталог, в котором установлена Windows.
    %LOGONSERVER% Имя контроллера домена, использовавшегося для авторизации текущего пользователя.
    %HOMEPATH% Возвращает полный путь к основному каталогу пользователя. Задаётся на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
    %DATE% Возвращает текущую дату. Использует тот же формат, что и команда date /t . Создаётся командой Cmd.exe .
    %TIME% Возвращает текущее время. Использует тот же формат, что и команда time /t . Создаётся командой Cmd.exe .
    %COMPUTERNAME% Имя компьютера.
    %TEMP% и %TMP% Возвращает временные каталоги, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP , другие — переменную TMP . Потенциально TEMP и TMP могут указывать на разные каталоги, но обычно совпадают.
    %ROGRAMFILES% Путь к каталогу Program Files.
    %PROGRAMFILES(x86)% Путь к каталогу Program Files (x86) в 64-разрядных системах для приложений архитектуры x86 .
    %PATH% Указывает путь поиска исполняемых файлов.

    Изменение переменных¶

    Чтобы изменить значение переменной, используется команда SET , например:

    Переменные окружения

    Переменные среды Windows — ударение на «Ы» во втором слове (смысл фразы заложен в родительном падеже и верном ударении: переменные чего? — среды!), в англоязычных версиях виндовс — environment variable)

    Переменные среды Windows используются для настройки операционных систем. Не каждому пользователю нужно разбираться с этими настройками и влезать в эти переменные, но есть пара переменных, о которых нужно знать всем пользователям персональных компьютеров. Речь идет о переменных, отвечающих за временное хранение файлов — TEMP и TMP.

    По умолчанию значение пользовательских временных (TEMP) переменных – %USERPROFILE%\Local Settings\Temp,

    По умолчанию значение системных временных переменных – \WINDOWS\Temp.

    Поэтому в первом случае это обычно: «C:\Documents and Settings\USER\Local Settings\Temp«

    По причине того, что в семействе операционных систем Windows папки с временными файлами сами собой почему-то не очищаются, в них может скопиться огромное множество различных ненужных файлов, достигающих общим размером до нескольких гигабайт! Среди временных файлов периодически прячутся различные вирусы и нехорошие скрипты, поэтому обязанность каждого пользователя ПК — регулярно удалять содержимое временных папок.

    Для удобства удаления лучше изменить путь по умолчанию на более простой, самый оптимальный вариант — «C:\Temp«.

    Как изменить Переменные среды Windows TEMP и TMP? — Очень просто:

    1. Правый клик на значке «Мой компьютер» на рабочем столе (если это полноценный значок, а не ярлык) или через меню Пуск -> Мой компьютер — > Свойства:

    2. Перейти на вкладку «Дополнительно» и кликнуть внизу на кнопку «Переменные среды«:

    3. В верхнем окне «Переменные среды пользователя» выбрать сначала первую строку (переменную TEMP) и нажать кнопку «Изменить«:

    4. Исправить значение переменной на более простое — «C:\Temp«:

    5. Повторить пункты 3 и 4 для переменной TMP:

    В итоге должно получиться:

    6. Нажать поочередно 2 раза «ОК«.

    В принципе тоже самое можно сделать с помощью командной строки, выполнив команду: SET TEMP=C:\TEMP

    Все переменные среды Windows:

    ALLUSERSPROFILE Указывает расположение профиля All Users (локальная переменная)
    APPDATA Указывает расположение каталога, в котором программы хранят данные по умолчанию (локальная переменная)
    CD Указывает имя текущего каталога (локальная переменная)
    CMDCMDLINE Указывает параметры командной строки, которые использовались для запуска текущего экземпляра программы CMD.EXE (локальная переменная)
    CMDEXTVERSION Указывает номер версии текущего расширения командного процессора (системная переменная)
    COMPUTERNAME Указывает имя компьютера (системная переменная)
    COMSPEC Указывает точный путь к исполняемому файлу командного интерпретатора (системная переменная)
    DATE Указывает текущую дату. Используется тот же формат, что и для команды date /t. Значение генерируется командным интерпретатором (системная переменная)
    ERRORLEVEL Указывает код уровня ошибки последней программы. Ненулевое значение, скорее всего, указывает на ошибку (системная переменная)
    HOMEDRIVE Указывает букву диска локальной рабочей станции, подключенной к домашнему каталогу. Переменная определяется на основе пути к домашнему каталогу. Домашний каталог пользователя определяется в оснастке Локальные пользователи и группы (Local Users and Groups) (системная переменная)
    HOMEPATH Указывает полный путь к домашнему каталогу пользователя. Переменная определяется на основе пути к домашнему каталогу. Домашний каталог пользователя определяется в оснастке Локальные пользователи и группы (Local Users and Groups) (системная переменная)
    HOMESHARE Указывает сетевой путь к общему домашнему каталогу пользователя. Переменная определяется на основе пути к домашнему каталогу. Домашний каталог пользователя назначается в оснастке Локальные пользователи и группы (Local Users and Groups) (системная переменная)
    LOGONSERVER Указывает имя контроллера домена, на котором авторизован текущий сеанс работы с системой (локальная переменная)
    NUMBER_OF_PROCESSORS Указывает количество процессоров, установленных в компьютере (системная переменная)
    OS Указывает версию операционной системы. ОС Windows XP/XP обозначаются, как Windows_NT (системная переменная)
    PATH Указывает путь поиска исполняемых файлов (системная переменная)
    PATHEXT Указывает список расширений, которые распознаются операционной системой, как расширения исполняемых файлов (системная переменная)
    PROCESSOR_ARCHITECTURE Указывает тип архитектуры процессора. Возможные значения: x86 и IA64 (системная переменная)
    PROCESSOR_IDENTIFIER Указывает описание процессора (системная переменная)
    PROCESSOR_LEVEL Указывает номер модели процессора, установленного в компьютере (системная переменная)
    PROCESSOR_REVISION Указывает номер версии модели процессора (системная переменная)
    PROMPT Указывает параметры приглашения командной строки для текущего интерпретатора. Генерируется интерпретатором CMD.EXE (локальная переменная)
    RandOM Указывает случайное десятичное число от 0 до 32767. Генерируется программой CMD.EXE (системная переменная)
    SYSTEMDRIVE Указывает букву диска, на котором расположен корневой каталог Windows (системная переменная)
    SYSTEMROOT Указывает путь к корневому каталогу Windows (системная переменная)
    TEMP или TMP Указывает путь к временным каталогам, принятым по умолчанию. Эти каталоги используются приложениями, доступными зарегистрированному в системе пользователю. Некоторым приложениям требуется значение переменной TEMP, в то время как другим — TMP (системная и пользовательская переменные соответственно)
    TIME Указывает текущее время. Используется тот же формат, что и для команды time /t. Генерируется интерпретатором CMD.EXE (системная переменная)
    USERDOMAIN Указывает имя домена, в котором хранится учетная запись пользователя (локальная переменная)
    USERNAME Указывает имя пользователя, который зарегистрирован в системе в текущий момент времени (локальная переменная)
    USERPROFILE Указывает путь к профилю текущего пользователя (локальная переменная)
    WINDIR Указывает путь к каталогу операционной системы (системная переменная)

    Чтобы получить доступ к значению переменной, необходимо поставить знак % перед её названием и после него, например: echo %NUMBER_OF_PROCESSORS%

  • Илон Маск рекомендует:  Урок 10. PHP - Функции
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL