Меню Рубрики

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

Переменные окружения в 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’

Теперь осталось обновить конфигурацию:

Для удаления этой переменной просто удалите ее из .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

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

Выводы

С помощью этих нескольких способов мы можем изменить переменные окружения. Если вы знаете другие интересные способы это сделать, поделитесь в комментариях!

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.

7 комментариев

/etc/profile
«Все переменные из этого файла, доступны любому пользователю в системе, только если он вошел удаленно. »
А что значит вошел удаленно? Через SSH?

Написанное справедливо для всех современных дистрибутивов?

Здравствуйте! Скажите можно ли запускать видео на 2-м мониторе добавив переменную в ./bashrc к примеру:
env DISPLAY=0:1 totem (ну или другой проигрыватель)?
или лучше использовать:
export DISPLAY=0:1 totem

Думаю: лучше env -i DISPLAY=0:1 totem в

/.xinputrc, только вот с totem’ом могут быть те ещё грабли — тут уже не подскажу. а вот если там же, в

/.xinputrc, будет export DISPLAY=0:1, то это подействует и на X-сервер. Ну, и ваше export DISPLAY=0:1 totem — это уже ошибка, тогда уж в две строки:
export DISPLAY=0:1
totem
Но, totem будет запускаться вместе с x-сервером. может проще создать alias с env в

/.bashrc? А может в totem есть ещё какие опции, как, например, в mplayer -display?

«. добавлением ее в /etc/bash.profile
.
Затем обновляем:
source /etc/bash.bashrc»
я думал обновлять надо отредактированный файл, или это опечатка?

Позволю себе добавить к вышесказанному:
VAR=1 # переменная видна только для ТЕКУЩЕГО процесса
$VAR
>> 1: команда не найдена
set | grep VAR # set без параметров отобразит ВСЕ (как локальные так и глобальные) переменные
>> VAR=1
env | grep VAR
>>
bash # запустим дочерний процесс
$VAR # наша переменная в нем не видна
>>
exit # выходим
$VAR # переменная сохранилась в родительском процессе
>> 1: команда не найдена
VAR=2 bash # установим переменную для дочернего процесса
$VAR # она видна в дочернем процессе
>> 2: команда не найдена
set | grep VAR # так же видна в set
>> VAR=2
exit # закрываем дочерний процесс
$VAR # в родительском процессе хранится свой экземпляр переменной
>> 1: команда не найдена
unset VAR
$VAR
>> # значение переменной сброшено

Читайте также:  Установка linux на acer chromebook

export VAR=3 # переменная видна в ТЕКУЩЕМ и ДОЧЕРНИХ процессах
$VAR
>> 3: команда не найдена
set | grep VAR
>> VAR=3
env | grep VAR
>> VAR=3
printenv | grep VAR
>> VAR=3
bash # запускаем дочерний процесс
env | grep VAR
$VAR # переменная доступна
>> 3: команда не найдена
VAR=2 # можем изменить ее значение
$VAR
>> 2: команда не найдена
unset VAR # сбросим значение
$VAR
>> # переменная не определена
exit
$VAR
>> 3: команда не найдена # родительский процесс хранит значение переменной после сброса в дочернем
env | grep VAR
>> VAR=3

источник

ИТ База знаний

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

Настройка программных телефонов

Корпоративные сети

Популярное и похожее

Установка VirtualBox 6.0 на Linux

Настройка DHCP сервера на CentOS или Ubuntu

Выключаем portmapper в CentOS 7

Рекурсивно найти слово в файлах и папках Linux

Переменные окружения в Linux: как посмотреть, установить и сбросить

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

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

Переменные окружения и переменные оболочки

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

Должны соблюдаться следующие правила:

  • Имена переменных чувствительны к регистру (регистрозависимы). Переменные окружения должны быть написаны большими буквами (UPPER CASE).
  • Несколько значений переменных разделяются двоеточием :
  • Вокруг символа = нет пробела

Переменные можно разделить на две категории:

  • Переменные окружения (Environmental Variables) — это переменные, которые определены для текущей оболочки и наследуются любыми дочерними оболочками или процессами. Переменные окружения используются для передачи информации в процессы, которые порождаются из оболочки.
  • Переменные оболочки (Shell Variables) — это переменные, которые содержатся исключительно в оболочке, в которой они были установлены или определены. Они часто используются для отслеживания эфемерных данных, например, текущего рабочего каталога.

Вывести список всех переменных окружения и оболочки

Мы можем увидеть список всех наших переменных окружения, используя команды env или printenv . В состоянии по умолчанию они должны работать точно так же:

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

А как посмотреть переменные оболочки?

Для этого можно использовать команду set . Если мы введем set без каких-либо дополнительных параметров, мы получим список всех переменных оболочки, переменных окружения, локальных переменных и функций оболочки:

Тут мы получим гигантский вывод, поэтому стоит использовать less , чтобы разделить содержимое на страницы:

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

Общий набор переменных окружения в Linux

Посмотрим на общий набор переменных окружения, которые вы можете найти в своей системе.

  • USER: текущее имя пользователя, использующего систему
  • EDITOR: какая программа запускается для редактирования файла на вашем хосте
  • HOME: домашний каталог текущего пользователя
  • PATH: список каталогов, разделенных двоеточиями, в которых система ищет команды
  • PS1: основная строка приглашения (для определения отображения приглашения оболочки)
  • PWD: текущий рабочий каталог
  • _: самая последняя команда, выполненная в системе пользователем
  • MAIL: путь к почтовому ящику текущего пользователя
  • SHELL: оболочка, используемая для интерпретации команд в системе, она может быть много разных (например, bash, sh, zsh или другие)
  • LANG: кодировка языка, используемая в системе
  • DESKTOP_SESSION: текущий рабочий стол, используемый на вашем хосте (GNOME, KDE)
  • HISTFILESIZE: количество строк истории команд, сохраненных в файле истории
  • HISTSIZE: количество строк истории, разрешенных в памяти
  • UID: текущий UID для пользователя
  • HOSTNAME: имя компьютера системы
  • TERM: указывает тип терминала
  • OLDPWD: предыдущий рабочий каталог
  • BASHOPTS: список параметров, которые использовались при выполнении bash.
  • BASH_VERSION: версия bash, выполняемая в удобочитаемой форме.
  • BASH_VERSINFO: версия bash с машиночитаемым выводом.
  • COLUMNS: Количество столбцов в ширину, которые используются для вывода вывода на экран.
  • DIRSTACK: стек каталогов, доступных с помощью команд pushd и popd.
  • IFS: внутренний разделитель полей для разделения ввода в командной строке. По умолчанию это пробел.
  • SHELLOPTS: параметры оболочки, которые можно установить с помощью параметра set.
Читайте также:  Установка программного обеспечения инсталляция процесс установки

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

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

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

Для примера создаим новую переменную, а затем экспортируем ее.

Чтобы создать новую переменную оболочки с именем NEW_VARIABLE и значением «test», и затем сразу экспортировать ее введите:

Используя export , ваша переменная окружения будет установлена для текущего сеанса оболочки. Как следствие, если вы откроете другую оболочку или перезапустите свою систему, переменная окружения больше не будет доступна.

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

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

Использование файла .bashrc

Самый популярный способ постоянной установки переменных среды — это добавить их в файл .bashrc .

Файл .bashrc — это скрипт, выполняемый всякий раз, когда вы инициализируете сеанс интерактивной оболочки. Как следствие, когда вы запускаете новый терминал через интерфейс GNOME или просто используете screen сессию, вы будете использовать файл .bashrc .

Например, добавьте следующие записи в ваш файл .bashrc :

Сохраните ваш файл и используйте команду source для перезагрузки файла bashrc для текущего сеанса оболочки.

Вы можете вывести новую переменную окружения с помощью printenv и посмотреть, дату в Linux, изменив TZ.

Отлично, ваши изменения теперь сохраняются после перезагрузки оболочки или системы!

Использование файла .bash_profile

В качестве альтернативы, если вы планируете подключаться к своим сеансам с помощью login оболочек, вы также можете добавить переменные окружения непосредственно в файл .bash_profile .

Использование etc/environment

Если вам нужно применить определенные переменные окружения для всех, то определить общесистемные переменные окружения. Чтобы установить общесистемные переменные окружения в Linux, вам нужно экспортировать переменные в файл /etc/environment .

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

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

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

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

Сбросить переменные окружения в Linux

Теперь, когда вы установили много переменных окружения в своей системе, вы можете отменить некоторые из них, если вы больше не используете их. В Linux существует два способа сброса переменных окружения: с помощью команды unset или путем удаления записей переменных в ваших системных файлах.

Использование команды unset

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

Использование команды set -n

Кроме того, вы можете сбросить переменные окружения, используя команду set с флагом -n -n.

Установить переменную окружения PATH в Linux

В системах Linux очень часто задают переменную окружения PATH , чтобы система могла находить команды.

Чтобы отобразить текущую переменную окружения PATH , выполните команду printenv :

Чтобы установить переменную окружения PATH, добавьте строку export в файл .bashrc и используйте с ним команду source :

Успех! Вы успешно обновили переменную окружения PATH в Linux.

Заключение

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

Вы также узнали, что можно сбросить переменные окружения и как легко обновить переменную окружения PATH .

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас 🙁 Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации 🙂 Просто оставьте свои данные в форме ниже.

источник

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

Adblock
detector