Когда народ глуп, им легко управлять (Шан Ян).

Как установить и перечислить переменные среды в Linux

5 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
11 апреля 2019
Как установить и перечислить переменные среды в Linux
В системах на основе Linux и Unix переменные среды представляют собой набор динамических именованных значений, которые хранятся в системе и используются приложениями, запускаемыми в оболочках или подоболочках. Проще говоря, переменная окружения – это переменная с именем и связанным значением.

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

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

 

Переменные имеют следующий формат:

KEY=value
KEY="Другое значение"
KEY=value1:value2
  • Имена переменных чувствительны к регистру. По соглашению переменные среды должны иметь имена в ВЕРХНЕМ РЕГИСТРЕ.
  • При назначении нескольких значений переменной они должны быть разделены символом двоеточия :.
  • Вокруг символа = равенства нет места.

 

Переменные можно классифицировать на две основные категории: переменные среды и переменные оболочки.

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

Переменные оболочки – это переменные, которые применяются только к текущему экземпляру оболочки. Каждая оболочка, такая как zsh и bash, имеет свой собственный набор внутренних переменных оболочки.

Есть несколько доступных команд, которые позволяют вам перечислять и устанавливать переменные среды в Linux:

  • env – Команда позволяет запускать другую программу в пользовательской среде без изменения текущей. При использовании без аргумента он напечатает список текущих переменных среды.
  • printenv – Команда печатает все или указанные переменные среды.
  • set – Команда устанавливает или отменяет переменные оболочки. Когда используется без аргумента, он напечатает список всех переменных, включая переменные окружения и оболочки, а также функции оболочки.
  • unset – Команда удаляет переменные оболочки и окружения.
  • export – Команда устанавливает переменные среды.

 

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

Например, для отображения значения HOMEпеременной среды вы должны выполнить:

printenv HOME

 

Выходные данные выведут путь текущего пользователя, вошедшего в систему:

/home/AndreyEx

 

Вы также можете передать в команду printenv более одного аргумента :

printenv LANG PWD
en_US
/home/AndreyEx

 

Если вы запустите команду printenvor env без аргументов, она покажет список всех переменных среды:

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=AndreyEx
PWD=/home/AndreyEx
HOME=/home/AndreyEx
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/AndreyEx
TERM=xterm-256color
SHELL=/bin/bash
SHLVL=1
LANGUAGE=en_US:
LOGNAME=AndreyEx
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
4.4.19(1)-release

Чтобы лучше проиллюстрировать разницу между переменными Shell и Environment, мы начнем с установки переменных Shell, а затем перейдем к переменным Environment.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 11

Если статья понравилась, то поделитесь ей в социальных сетях:

Отправить ответ

Войти с помощью: 
avatar
  Подписаться  
Уведомление о

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close