04 05 2014, Ð Ð´ÐµÑ Ñ Ð° Ð Ñ Ð²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð½Ñ Ð¹ из Ð Ð£Ð Ð Ð°ÐºÑ Ð¸Ð²Ð¸Ñ Ñ Ð°Ð½Ñ Ð¸Ð¼Ð°Ð¹Ð´Ð
Оглавление:
- Переменные среды и переменные оболочки
- Переменные среды списка
- Установка переменных среды
- Постоянные переменные среды
- Вывод
В системах на основе Linux и Unix переменные среды представляют собой набор динамических именованных значений, которые хранятся в системе и используются приложениями, запускаемыми в оболочках или подоболочках. Проще говоря, переменная окружения - это переменная с именем и связанным значением.
Переменные среды позволяют вам настроить работу системы и поведение приложений в системе. Например, переменная окружения может хранить информацию о текстовом редакторе или браузере по умолчанию, пути к исполняемым файлам или настройке локали системы и раскладки клавиатуры.
В этом руководстве мы объясним, как читать и устанавливать переменные окружения и оболочки.
Переменные среды и переменные оболочки
Переменные имеют следующий формат:
KEY=value KEY="Some other value" KEY=value1:value2
- Имена переменных чувствительны к регистру. По соглашению переменные окружения должны иметь имена UPPER CASE. При назначении переменной нескольких значений они должны быть разделены двоеточием
:
символ. Вокруг символа равно не должно быть пробела.
Переменные можно классифицировать на две основные категории: переменные среды и переменные оболочки.
Переменные среды - это переменные, которые доступны для всей системы и наследуются всеми порожденными дочерними процессами и оболочками.
Переменные оболочки - это переменные, которые применяются только к текущему экземпляру оболочки. Каждая оболочка, такая как
zsh
и
bash
, имеет свой собственный набор внутренних переменных оболочки.
Есть несколько доступных команд, которые позволяют вам перечислять и устанавливать переменные среды в Linux:
-
env
- команда позволяет вам запускать другую программу в пользовательской среде без изменения текущей. При использовании без аргумента он напечатает список текущих переменных среды.printenv
- команда печатает все или указанные переменные среды.set
- команда устанавливает или сбрасывает переменные оболочки. Когда используется без аргумента, он напечатает список всех переменных, включая переменные окружения и оболочки, а также функции оболочки.unset
- команда удаляет переменные оболочки и окружения.export
- Команда устанавливает переменные среды.
Переменные среды списка
Наиболее используемая команда для отображения переменных среды -
printenv
. Если имя переменной передается в качестве аргумента команды, отображается только значение этой переменной. Если аргумент не указан,
printenv
печатает список всех переменных среды, по одной переменной на строку.
Например, чтобы отобразить значение переменной среды
HOME
вы должны выполнить:
printenv HOME
Выходные данные выведут путь текущего пользователя, вошедшего в систему:
/home/linuxize
Вы также можете передать более одного аргумента команде
printenv
:
printenv LANG PWD
en_US /home/linuxize
printenv
Вывод будет выглядеть примерно так:
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35;… LESSCLOSE=/usr/bin/lesspipe %s %s LANG=en_US S_COLORS=auto XDG_SESSION_ID=5 USER=linuxize PWD=/home/linuxize HOME=/home/linuxize SSH_CLIENT=192.168.121.1 34422 22 XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop SSH_TTY=/dev/pts/0 MAIL=/var/mail/linuxize TERM=xterm-256color SHELL=/bin/bash SHLVL=1 LANGUAGE=en_US: LOGNAME=linuxize XDG_RUNTIME_DIR=/run/user/1000 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin LESSOPEN=| /usr/bin/lesspipe %s _=/usr/bin/printenv
Ниже приведены некоторые из наиболее распространенных переменных среды:
-
USER
- текущий зарегистрированный пользователь.HOME
- домашний каталог текущего пользователя.EDITOR
- редактор файлов по умолчанию, который будет использоваться. Это редактор, который будет использоваться при вводеedit
в вашем терминале.SHELL
- путь оболочки текущего пользователя, такой как bash или zsh.LOGNAME
- имя текущего пользователя.PATH
- список каталогов, которые нужно искать при выполнении команд. Когда вы запускаете команду, система будет искать эти каталоги в указанном порядке и использовать первый найденный исполняемый файл.LANG
- текущие настройки локалей.TERM
- текущая эмуляция терминала.MAIL
- место, где хранится почта текущего пользователя.
Команды
printenv
и
env
выводят только переменные окружения. Если вы хотите получить список всех переменных, включая окружение, оболочку и переменные, а также функции оболочки, вы можете использовать команду
set
:
set
BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=()
Команда отобразит большой список всех переменных, поэтому вы, вероятно, захотите направить вывод в команду
less
.
set | less
Вы также можете использовать команду echo для печати переменной оболочки. Например, чтобы вывести значение переменной
BASH_VERSION
вы должны выполнить:
echo $BASH_VERSION
Установка переменных среды
Чтобы лучше проиллюстрировать разницу между переменными Shell и Environment, мы начнем с установки переменных Shell, а затем перейдем к переменным Environment.
Чтобы создать новую переменную оболочки с именем
MY_VAR
и значением
Linuxize
просто введите:
MY_VAR='Linuxize'
Вы можете проверить, что переменная установлена, используя
echo $MY_VAR
для фильтрации вывода команды set с помощью grep
set | grep MY_VAR
set | grep MY_VAR
:
echo $MY_VAR
Linuxize
Используйте команду
printenv
чтобы проверить, является ли эта переменная переменной среды:
printenv MY_VAR
Вывод будет пустым, что говорит о том, что переменная не является переменной окружения.
Вы также можете попробовать напечатать переменную в под-оболочке, и вы получите пустой вывод.
bash -c 'echo $MY_VAR'
Команда
export
используется для установки переменных окружения.
Чтобы создать переменную среды, просто экспортируйте переменную оболочки как переменную среды:
export MY_VAR
Вы можете проверить это, запустив:
printenv MY_VAR
Linuxize
bash -c 'echo $MY_VAR'
Linuxize
Вы также можете установить переменные среды в одну строку:
export MY_NEW_VAR="My New Var"
Переменные среды, созданные таким образом, доступны только в текущем сеансе. Если вы откроете новую оболочку или выйдете из системы, все переменные будут потеряны.
Постоянные переменные среды
Чтобы сделать переменные окружения постоянными, вам нужно определить эти переменные в файлах конфигурации bash. В большинстве дистрибутивов Linux при запуске нового сеанса переменные среды считываются из следующих файлов:
-
/etc/environment
- используйте этот файл для настройки общесистемных переменных окружения. Переменные в этом файле задаются в следующем формате:FOO=bar
VAR_TEST="Test Var"
/etc/profile
- переменные, установленные в этом файле, загружаются при каждом входе в оболочку bash. При объявлении переменных окружения в этом файле вам нужно использовать командуexport
:export JAVA_HOME="/path/to/java/home"
export PATH=$PATH:$JAVA_HOME/bin
Конфигурационные файлы для отдельных пользовательских оболочек. Например, если вы используете Bash, вы можете объявить переменные в
~/.bashrc
:export PATH="$HOME/bin:$PATH"
Чтобы загрузить новые переменные среды в текущий сеанс оболочки, используйте команду
source
:
Вывод
В этом руководстве мы показали, как устанавливать и перечислять переменные окружения и оболочки.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.
ТерминалРазработка приложений Windows Phone 7.5: переменные, типы данных и присвоение значений
В этом уроке мы увидим, какие переменные и типы данных есть и как назначать или извлекать значения из переменные
Не удалось перечислить объекты в контейнере
Если вы не можете изменять разрешения объектов и получать Не удалось перечислить объекты в контейнере , Ошибка доступа запрещена в Windows 10 / 8.1, см. Это исправление.
Как создать виртуальные среды Python в Ubuntu 18.04
Виртуальная среда Python - это автономное дерево каталогов, которое включает в себя установку Python и ряд дополнительных пакетов. В этом руководстве мы предоставим пошаговые инструкции о том, как создавать виртуальные среды Python в Ubuntu 18.04.