- Как установить и перечислить переменные среды в Linux
- Переменные среды и переменные оболочки
- Список переменных среды
- Установка переменных среды
- Постоянные переменные среды
- Выводы
- Как установить и перечислить переменные среды в Linux
- How to Set and List Environment Variables in Linux
- В этом руководстве мы объясним, как читать и устанавливать переменные окружения и оболочки.
- Переменные среды и переменные оболочки
- Переменные среды списка
- Установка переменных среды
- Постоянные переменные среды
- Вывод
- ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ В LINUX
- 1. ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
- 2. ПОЛЬЗОВАТЕЛЬСКИЕ ПЕРЕМЕННЫЕ ОБОЛОЧКИ
- 3. СИСТЕМНЫЕ ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
- КОНФИГУРАЦИОННЫЕ ФАЙЛЫ ПЕРЕМЕННЫХ ОКРУЖЕНИЯ LINUX
- .BASHRC
- .BASH_PROFILE
- /ETC/ENVIRONMENT
- /ETC/BASH.BASHRC
- /ETC/PROFILE
- ДОБАВЛЕНИЕ ПОЛЬЗОВАТЕЛЬСКИХ И СИСТЕМНЫХ ПЕРЕМЕННЫХ ОКРУЖЕНИЯ В LINUX
- 1. ИСПОЛЬЗОВАНИЕ ENV
- 2. ИСПОЛЬЗОВАНИЕ UNSET
- 3. УСТАНОВИТЬ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ В »
- СОЗДАНИЕ ПОЛЬЗОВАТЕЛЬСКИХ И СИСТЕМНЫХ ПЕРЕМЕННЫХ ОКРУЖЕНИЯ
- 1. УСТАНАВЛИВАЕМ И УДАЛЯЕМ ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ В LINUX
- УСТАНОВКА И УДАЛЕНИЕ ПОЛЬЗОВАТЕЛЬСКИХ ПЕРЕМЕННЫХ
- УСТАНОВКА И УДАЛЕНИЕ СИСТЕМНЫХ ПЕРЕМЕННЫХ ОКРУЖЕНИЯ
Как установить и перечислить переменные среды в Linux
В системах на основе Linux и Unix переменные среды представляют собой набор динамических именованных значений, хранящихся в системе, которые используются приложениями, запускаемыми в оболочках или подоболочках. Проще говоря, переменная среды — это переменная с именем и связанным значением.
Переменные среды позволяют настраивать работу системы и поведение приложений в системе. Например, переменная среды может хранить информацию о текстовом редакторе или браузере по умолчанию, пути к исполняемым файлам или настройках языкового стандарта и раскладки клавиатуры.
В этом руководстве мы объясним, как читать и устанавливать переменные среды и оболочки.
Переменные среды и переменные оболочки
Переменные имеют следующий формат:
- Имена переменных чувствительны к регистру. По соглашению, переменные среды должны иметь имена в ВЕРХНЕМ РЕГИСТРЕ.
- При присвоении переменной нескольких значений они должны быть разделены двоеточием : символ.
- Вокруг символа равенства = нет пробела.
Переменные можно разделить на две основные категории: переменные среды и переменные оболочки.
Переменные среды — это переменные, доступные для всей системы и наследуемые всеми порожденными дочерними процессами и оболочками.
Переменные оболочки — это переменные, которые применяются только к текущему экземпляру оболочки. Каждая оболочка, такая как zsh и bash , имеет собственный набор внутренних переменных оболочки.
Доступно несколько команд, которые позволяют вам перечислять и устанавливать переменные среды в Linux:
- env — команда позволяет запускать другую программу в настраиваемой среде без изменения текущей. При использовании без аргумента он распечатает список текущих переменных среды.
- printenv — команда печатает все или указанные переменные среды.
- set — Команда устанавливает или отменяет переменные оболочки. При использовании без аргумента он распечатает список всех переменных, включая переменные среды и оболочки, а также функции оболочки.
- unset — команда удаляет переменные оболочки и среды.
- export — команда устанавливает переменные среды.
Список переменных среды
Наиболее часто используемая команда для отображения переменных среды — это printenv . Если имя переменной передается в качестве аргумента команде, отображается только значение этой переменной. Если аргумент не указан, printenv печатает список всех переменных среды, по одной переменной в каждой строке.
Например, чтобы отобразить значение переменной среды HOME вы должны запустить:
На выходе будет напечатан путь текущего пользователя, вошедшего в систему:
Вы также можете передать команде printenv более одного аргумента:
Если вы запустите команду printenv или env без аргументов, она покажет список всех переменных среды:
Результат будет выглядеть примерно так:
Ниже приведены некоторые из наиболее распространенных переменных среды:
- USER — текущий авторизованный пользователь.
- HOME — домашний каталог текущего пользователя.
- EDITOR — используемый по умолчанию редактор файлов. Это редактор, который будет использоваться при вводе edit в терминале.
- SHELL — путь к оболочке текущего пользователя, например bash или zsh.
- LOGNAME — имя текущего пользователя.
- PATH — список каталогов, в которых будет производиться поиск при выполнении команд. Когда вы запускаете команду, система будет искать в этих каталогах в указанном порядке и использовать первый найденный исполняемый файл.
- LANG — текущие настройки локали.
- TERM — текущая эмуляция терминала.
- MAIL — Местоположение, где хранится почта текущего пользователя.
Команды printenv и env выводят только переменные среды. Если вы хотите получить список всех переменных, включая среду, оболочку, переменные и функции оболочки, вы можете использовать команду set :
Команда отобразит большой список всех переменных, поэтому вы, вероятно, захотите передать вывод команде less .
Вы также можете использовать команду echo для печати переменной оболочки. Например, чтобы распечатать значение переменной BASH_VERSION вы должны запустить:
Установка переменных среды
Чтобы лучше проиллюстрировать разницу между переменными оболочки и среды, мы начнем с установки переменных оболочки, а затем перейдем к переменным среды.
Чтобы создать новую переменную оболочки с именем MY_VAR и значением Linuxize просто введите:
Вы можете проверить, что переменная установлена, используя либо echo $MY_VAR либо фильтруя вывод команды set с помощью grep set | grep MY_VAR :
Используйте команду printenv чтобы проверить, является ли эта переменная переменной среды или нет:
Вывод будет пустым, что говорит нам, что переменная не является переменной среды.
Вы также можете попробовать напечатать переменную во вспомогательной оболочке, и вы получите пустой результат.
Команда export используется для установки переменных среды.
Чтобы создать переменную среды, просто экспортируйте переменную оболочки как переменную среды:
Вы можете проверить это, запустив:
Если вы попытаетесь напечатать переменную во вспомогательной оболочке, на этот раз вы получите имя переменной, напечатанное на вашем терминале:
Вы также можете установить переменные среды в одной строке:
Созданные таким образом переменные среды доступны только в текущем сеансе. Если вы откроете новую оболочку или выйдете из системы, все переменные будут потеряны.
Постоянные переменные среды
Чтобы сделать переменные среды постоянными, вам необходимо определить эти переменные в файлах конфигурации bash. В большинстве дистрибутивов Linux при запуске нового сеанса переменные среды считываются из следующих файлов:
/etc/environment — используйте этот файл для настройки общесистемных переменных среды. Переменные в этом файле задаются в следующем формате:
/etc/profile — переменные, установленные в этом файле, загружаются при входе в оболочку входа в bash. При объявлении переменных окружения в этом файле вам необходимо использовать команду export :
Файлы конфигурации для конкретной оболочки пользователя. Например, если вы используете Bash, вы можете объявить переменные в
Чтобы загрузить новые переменные среды в текущий сеанс оболочки, используйте source команду:
Выводы
В этом руководстве мы показали вам, как устанавливать и перечислять переменные среды и оболочки.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Источник
Как установить и перечислить переменные среды в Linux
How to Set and List Environment Variables in Linux
В этом руководстве мы объясним, как читать и устанавливать переменные окружения и оболочки.
В системах на основе Linux и Unix переменные среды представляют собой набор динамических именованных значений, которые хранятся в системе и используются приложениями, запускаемыми в оболочках или подоболочках. Проще говоря, переменная окружения — это переменная с именем и связанным значением.
Переменные среды позволяют настроить работу системы и поведение приложений в системе. Например, переменная окружения может хранить информацию о текстовом редакторе или браузере по умолчанию , пути к исполняемым файлам или настройке локали системы и раскладки клавиатуры.
Переменные среды и переменные оболочки
Переменные имеют следующий формат:
- Имена переменных чувствительны к регистру. По соглашению переменные среды должны иметь имена UPPER CASE.
- При назначении нескольких значений переменной они должны быть разделены : символом двоеточия .
- Вокруг = символа равенства нет места .
Переменные можно классифицировать на две основные категории: переменные среды и переменные оболочки.
Переменные среды — это переменные, которые доступны для всей системы и наследуются всеми порожденными дочерними процессами и оболочками.
Переменные оболочки — это переменные, которые применяются только к текущему экземпляру оболочки. Каждая оболочка, такая как zsh и bash , имеет свой собственный набор внутренних переменных оболочки.
Есть несколько доступных команд, которые позволяют вам перечислять и устанавливать переменные среды в Linux:
- env — Команда позволяет запускать другую программу в пользовательской среде без изменения текущей. При использовании без аргумента он напечатает список текущих переменных среды.
- printenv — Команда печатает все или указанные переменные среды.
- set — Команда устанавливает или отменяет переменные оболочки. При использовании без аргумента он напечатает список всех переменных, включая переменные окружения и оболочки, а также функции оболочки.
- unset — Команда удаляет переменные оболочки и среды.
- export — Команда устанавливает переменные среды.
Переменные среды списка
Наиболее используемой командой для отображения переменных среды является printenv . Если имя переменной передается в качестве аргумента команды, отображается только значение этой переменной. Если аргумент не указан, printenv печатается список всех переменных среды, по одной переменной на строку.
Например, чтобы отобразить значение HOME переменной среды, вы должны выполнить:
Вывод выведет путь текущего пользователя, вошедшего в систему:
Вы также можете передать в printenv команду более одного аргумента:
Если вы запустите команду printenv or env без аргументов, она покажет список всех переменных среды:
Вывод будет выглядеть примерно так:
Ниже приведены некоторые из наиболее распространенных переменных среды:
- USER — текущий вошедший в систему пользователь.
- HOME — Домашний каталог текущего пользователя.
- EDITOR — Используемый по умолчанию редактор файлов. Это редактор, который будет использоваться при вводе edit в вашем терминале.
- SHELL — Путь к оболочке текущего пользователя, например, bash или zsh.
- LOGNAME — имя текущего пользователя.
- PATH — Список каталогов для поиска при выполнении команд. Когда вы запускаете команду, система будет искать эти каталоги в указанном порядке и использовать первый найденный исполняемый файл.
- LANG — текущие настройки локалей.
- TERM — Текущая эмуляция терминала.
- MAIL — Место хранения почты текущего пользователя.
printenv И env команды печатают только переменные окружения. Если вы хотите получить список всех переменных, включая окружение, оболочку и переменные, а также функции оболочки, вы можете использовать set команду:
Вы также можете использовать команду echo для печати переменной оболочки. Например, чтобы напечатать значение BASH_VERSION переменной, которую вы запустите:
Установка переменных среды
Чтобы лучше проиллюстрировать разницу между переменными Shell и Environment, мы начнем с установки переменных Shell, а затем перейдем к переменным Environment.
Чтобы создать новую переменную оболочки с именем MY_VAR и значением, Linuxize просто введите:
Вы можете проверить, что переменная установлена, используя любой echo $MY_VAR из фильтров вывода команды set с помощью grep set | grep MY_VAR :
Используйте printenv команду, чтобы проверить, является ли эта переменная переменной среды:
Вывод будет пустым, что говорит о том, что переменная не является переменной окружения.
Вы также можете попробовать напечатать переменную в под-оболочке, и вы получите пустой вывод.
Команда export используется для установки переменных окружения.
Чтобы создать переменную среды, просто экспортируйте переменную оболочки как переменную среды:
Вы можете проверить это, запустив:
Если вы попытаетесь напечатать переменную в подоболочке на этот раз, вы получите имя переменной, напечатанное на вашем терминале:
Вы также можете установить переменные среды в одну строку:
Переменные среды, созданные таким образом, доступны только в текущем сеансе. Если вы откроете новую оболочку или выйдете из системы, все переменные будут потеряны.
Постоянные переменные среды
Чтобы сделать переменные окружения постоянными, вам нужно определить эти переменные в файлах конфигурации bash. В большинстве дистрибутивов Linux при запуске нового сеанса переменные среды считываются из следующих файлов:
/etc/environment — Используйте этот файл для настройки общесистемных переменных среды. Переменные в этом файле задаются в следующем формате:
/etc/profile — Переменные, установленные в этом файле, загружаются при каждом входе в оболочку bash. При объявлении переменных окружения в этом файле вам нужно использовать export команду:
Конфигурационные файлы для конкретных пользовательских оболочек. Например, если вы используете Bash, вы можете объявить переменные в
Чтобы загрузить новые переменные среды в текущий сеанс оболочки, используйте source команду:
Вывод
В этом руководстве мы показали, как устанавливать и перечислять переменные среды и оболочки.
Источник
ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ В LINUX
Переменные окружения в Linux — это специальные переменные, определенные оболочкой и используемые программами во время выполнения. Они могут определяться системой и пользователем. Системные переменные окружения Linux определяются системой и используются программами системного уровня.
Например, команда PWD использует системную переменную, чтобы сохранять прежнюю рабочую директорию. Пользовательские переменные окружения устанавливаются пользователем, для текущей оболочки, временно или постоянно. Вся концепция добавления и удаления переменных оболочки крутится вокруг нескольких файлов, команд и различных оболочек.
Если смотреть более широко, переменная окружения может быть трех типов:
1. ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
Эти переменные определены только для текущей сессии. Они будут безвозвратно стерты после завершения сессии, будь то удаленный доступ или эмулятор терминала. Они не хранятся ни в каких файлах, а создаются и удаляются с помощью специальных команд.
2. ПОЛЬЗОВАТЕЛЬСКИЕ ПЕРЕМЕННЫЕ ОБОЛОЧКИ
Эти переменные оболочки в Linux определяются для конкретного пользователя и загружаются каждый раз когда он входит в систему при помощи локального терминала, или же подключается удаленно. Такие переменные, как правило, хранятся в файлах конфигурации: .bashrc, .bash_profile, .bash_login, .profile или в других файлах, размещенных в директории пользователя.
3. СИСТЕМНЫЕ ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
Эти переменные доступны во всей системе, для всех пользователей. Они загружаются при старте системы из системных файлов конфигурации: /etc/environment, /etc/profile, /etc/profile.d/ /etc/bash.bashrc.
КОНФИГУРАЦИОННЫЕ ФАЙЛЫ ПЕРЕМЕННЫХ ОКРУЖЕНИЯ LINUX
Здесь мы кратко рассмотрим различные конфигурационные файлы, перечисленные выше, которые используются для настройки переменных окружения для всей системы или конкретного пользователя.
.BASHRC
Это файл переменных конкретного пользователя. Загружается каждый раз, когда пользователь создает терминальный сеанс, то есть проще говоря, открывает новый терминал. Все переменные окружения, созданные в этом файле вступают в силу каждый раз когда началась новая терминальная сессия.
.BASH_PROFILE
Эти переменные вступают в силу каждый раз когда пользователь подключается удаленно по SSH. Если этот файл отсутствует система будет искать .bash_login или .profile.
/ETC/ENVIRONMENT
Этот файл для создания, редактирования и удаления каких-либо переменных окружения на системном уровне. Переменные окружения, созданные в этом файле доступны для всей системы, для каждого пользователя и даже при удаленном подключении.
/ETC/BASH.BASHRC
Системный bashrc. Этот файл выполняется для каждого пользователя, каждый раз когда он создает новую терминальную сессию. Это работает только для локальных пользователей, при подключении через интернет, такие переменные не будут видны.
/ETC/PROFILE
Системный файл profile. Все переменные из этого файла, доступны любому пользователю в системе, только если он вошел удаленно. Но они не будут доступны, при создании локальной терминальной сессии, то есть если вы просто откроете терминал.
Все переменные окружения Linux созданные с помощью этих файлов, могут быть удаленны всего лишь удалением их оттуда. Только после каждого изменения, нужно либо выйти и зайти в систему, либо выполнить эту команду:
ДОБАВЛЕНИЕ ПОЛЬЗОВАТЕЛЬСКИХ И СИСТЕМНЫХ ПЕРЕМЕННЫХ ОКРУЖЕНИЯ В LINUX
Теперь, когда вы знаете немного теории, перейдем к практике. Локальные переменные окружения в Linux можно создавать следующими командами:
var=значение
export var=значение
Эти переменные будут доступны только для текущей терминальной сессии.
Для удаления переменных окружения можно использовать несколько команд:
1. ИСПОЛЬЗОВАНИЕ ENV
По умолчанию с помощью env можно посмотреть все установленные переменные среды. Но с опцией -i она позволяет временно удалить все переменные оболочки и выполнить команду без переменных.
env –i [Var=Значение] команда
Var — это любая переменная, которую вы хотите передать этой команде.
Такая команда запустит оболочку вообще без переменных окружения:
После запуска такого окружения, не будет доступно никаких переменных, но после выхода все вернется на свои места.
2. ИСПОЛЬЗОВАНИЕ UNSET
Это другой способ удаления переменных окружения Linux. Unset удаляет переменную по имени до конца текущей сессии:
3. УСТАНОВИТЬ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ В »
Это самый простой способ удаления переменных окружения в Linux, устанавливая пустое значение переменной, вы удаляете ее до конца текущей сессии.
Замечание: С помощью таких способов вы можете изменять значения системных или пользовательских переменных, но они будут актуальны только для текущего сеанса.
СОЗДАНИЕ ПОЛЬЗОВАТЕЛЬСКИХ И СИСТЕМНЫХ ПЕРЕМЕННЫХ ОКРУЖЕНИЯ
В этом разделе рассмотрим как установить и удалить системные и пользовательские переменные не только для текущего сеанса, а так чтобы эффект сохранялся после перезагрузки.
1. УСТАНАВЛИВАЕМ И УДАЛЯЕМ ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ В LINUX
Давайте создадим локальную переменную VAR и установим ей любое значение, затем удалим ее с помощью unset и убедимся что она удалена:
VAR1=’Losst’
echo $VAR1
unset VAR1
echo $VAR1
Другой способ создать переменную — команда export. Удалим ее присвоив пустое значение:
export VAR=’Losst’
echo $VAR
VAR=
echo $VAR
Теперь создадим переменную VAR2 также зададим ей значение. А потом временно удалим все локальные переменные выполнив env -i. Она запустит оболочку без каких-либо переменных. После ввода exit все переменные будут восстановлены.
VAR2=’Losst’
echo $VAR2
env -i bash
echo $VAR2
УСТАНОВКА И УДАЛЕНИЕ ПОЛЬЗОВАТЕЛЬСКИХ ПЕРЕМЕННЫХ
Отредактируйте файл .bashrc, в вашей домашней директории, добавив команду export, для экспортирования нужной переменной. Затем выполните команду source для применения изменений. Создадим, например, переменную CD:
Добавьте такую строчку (o, затем вставить, затем Esc и :wq):
export CD=’This is Losst Home’
Теперь осталось обновить конфигурацию:
source .bashrc
echo $CD
Для удаления этой переменной просто удалите ее из .bashrc.
Теперь добавим переменную окружения с помощью .bash_profile. Эта переменная, как вы уже знаете будет доступна только при удаленном входе:
export VAR2=’This is Losst Home’
И выполните эти команды, чтобы применить изменения и проверить добавление переменной:
source .bash_profile
echo $VAR2
Переменная недоступна, так как вы создали локальную терминальную сессию, теперь подключитесь по ssh:
ssh user@localhost
echo $VAR2
Удалить эту переменную окружения можно так же как и в предыдущем случае, удалив ее из файла.
Замечание: Эти переменные доступны всегда, но не для всех пользователей.
УСТАНОВКА И УДАЛЕНИЕ СИСТЕМНЫХ ПЕРЕМЕННЫХ ОКРУЖЕНИЯ
Создадим переменную, доступную для всех пользователей, во всех терминальных сессиях, кроме удаленных, добавлением ее в /etc/bash.profile:
export VAR=’This is system-wide variable’
Теперь эта переменная доступна для всех пользователей, во всех терминалах:
echo $VAR
sudo su
echo $VAR
su —
echo $VAR
Если вы хотите сделать переменную окружения доступной для всех пользователей, которые подключаются к этой машине удаленно, отредактируйте файл /etc/profile:
export VAR1=’This is system-wide variable for only remote sessions’
Обновите конфигурацию, и проверьте доступность переменной, она будет доступна только удаленно:
source /etc/profile
echo $VAR1
Если нужно добавить переменную окружения в Linux, так чтобы она была доступна и удаленно, и для локальных сессий, экспортируйте ее в /etc/environment:
export VAR12=’I am available everywhere’
source /etc/environment
echo $VAR12
sudo su
echo $VAR12
exit
ssh localhost
echo $VAR12
Как видите, переменная доступна и для локальных пользователей и удаленно.
Источник