Поиск по сайту:

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


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

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

В более широком смысле переменная среды может быть трех типов:

1. Локальная переменная среды

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

2. Переменная пользовательской среды

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

3. Общесистемные переменные среды

Это переменные среды, которые доступны для всей системы, то есть для всех пользователей, присутствующих в этой системе. Эти переменные присутствуют в общесистемных файлах конфигурации, находящихся в следующих каталогах и файлах: /etc/environment, /etc/profile, /etc/profile.d /, /etc/bash.bashrc. Эти переменные загружаются каждый раз, когда система включается и входит в систему локально или удаленно любым пользователем.

Понимание общепользовательских и общесистемных файлов конфигурации

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

.bashrc

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

.bash_profile

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

/etc/среда

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

/etc/bash.bashrc

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

/etc/профиль

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

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

source <file-name>

Установите или снимите локальные или общесессионные переменные среды в Linux

Локальные переменные среды можно создать с помощью следующих команд:

var=value 
OR
export var=value

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

1. Использование окружения

По умолчанию команда "env" выводит список всех текущих переменных среды. Но при использовании с переключателем '-i' он временно очищает все переменные среды и позволяет пользователю выполнить команду в текущем сеансе при отсутствии всех переменных среды.

env –i [Var=Value]… command args…

Здесь var=value соответствует любой локальной переменной среды, которую вы хотите использовать только с этой командой.

env –i bash

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

2. Использование сброса настроек

Другой способ очистить локальную переменную среды — использовать команду unset. Чтобы временно отключить любую локальную переменную среды,

unset <var-name>

Где var-name — это имя локальной переменной, которую вы хотите отменить или очистить.

3. Установите имя переменной ”

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

ПРИМЕЧАНИЕ. ВЫ МОЖЕТЕ ДАЖЕ ИГРАТЬ И ИЗМЕНЯТЬ ЗНАЧЕНИЯ СИСТЕМНЫХ ИЛИ ПОЛЬЗОВАТЕЛЬСКИХ ПЕРЕМЕННЫХ СРЕДЫ, НО ИЗМЕНЕНИЯ БУДУТ ОТРАЖАТЬСЯ ТОЛЬКО НА ТЕКУЩЕЙ ТЕРМИНАЛЬНОЙ СЕССИИ И НЕ БУДЕТ ПОСТОЯННО.

Узнайте, как создавать общепользовательские и общесистемные переменные среды в Linux

В этом разделе мы узнаем, как устанавливать или отключать локальные, пользовательские и общесистемные переменные среды в Linux, на примерах ниже:

1. Установка и снятие локальных переменных в Linux

a.) Здесь мы создаем локальную переменную VAR1 и присваиваем ей любое значение. Затем мы используем unset, чтобы удалить эту локальную переменную, и в конце эта переменная удаляется.

VAR1='TecMint is best Site for Linux Articles'
echo $VAR1
unset VAR1
echo $VAR1

b.) Другой способ создания локальной переменной — использование команды export. Созданная локальная переменная будет доступна для текущего сеанса. Чтобы отключить переменную, просто установите для нее значение ''.

export VAR='TecMint is best Site for Linux Articles'
echo $VAR
VAR=
echo $VAR

c.) Здесь мы создали локальную переменную VAR2 и присвоили ей значение. Затем, чтобы запустить команду, временно очищающую все локальные и другие переменные среды, мы выполнили команду 'env –i'. Эта команда выполнила оболочку bash, очистив все остальные переменные среды. После ввода 'exit' в вызванной оболочке bash все переменные будут восстановлены.

VAR2='TecMint is best Site for Linux Articles'
echo $VAR2
env -i bash
echo $VAR2   

2. Установка и отмена общепользовательских переменных среды в Linux

a.) Измените файл .bashrc в своем домашнем каталоге, чтобы экспортировать или установить переменную среды, которую необходимо добавить. После этого источник файла, чтобы изменения вступили в силу. Тогда вы увидите, что переменная (в моем случае 'CD') вступает в силу. Эта переменная будет доступна каждый раз, когда вы открываете новый терминал для этого пользователя, но не для сеансов удаленного входа.

vi .bashrc

Добавьте следующую строку в файл .bashrc внизу.

export CD='This is TecMint Home'

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

source .bashrc 
echo $CD

Чтобы удалить эту переменную, просто удалите следующую строку в файле .bashrc и измените ее исходный код:

b.) Чтобы добавить переменную, которая будет доступна для сеансов удаленного входа в систему (т. е. когда вы подключаетесь к пользователю по SSH из удаленной системы), измените файл .bash_profile.

vi .bash_profile

Добавьте следующую строку в файл .bash_profile внизу.

export VAR2='This is TecMint Home'

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

source .bash_profile 
echo $VAR2

Здесь VAR2 изначально недоступен, но при подключении пользователя по ssh на локальном хосте переменная становится доступной.

ssh tecmint@localhost
echo $VAR2

Чтобы удалить эту переменную, просто удалите строку в файле .bash_profile, который вы добавили, и измените исходный код файла.

ПРИМЕЧАНИЕ. Эти переменные будут доступны каждый раз, когда вы входите в систему для текущего пользователя, но не для других пользователей.

3. Установка и снятие общесистемных переменных среды в Linux

a.) Чтобы добавить общесистемную переменную без входа в систему (т. е. ту, которая доступна для всех пользователей, когда любой из них открывает новый терминал, но не когда любой пользователь машины получает удаленный доступ), добавьте переменную в a.)./etc/bash.bashrc файл.

export VAR='This is system-wide variable'

После этого создайте исходный файл.

source /etc/bash.bashrc 

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

echo $VAR
sudo su
echo $VAR
su -
echo $VAR

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

b.) Если вы хотите, чтобы какая-либо переменная среды была доступна при удаленном входе любого пользователя на вашем компьютере, но не при открытии нового терминала на локальном компьютере, вам необходимо отредактировать файл. – '/etc/profile'.

export VAR1='This is system-wide variable for only remote sessions'

После добавления переменной просто измените исходный код файла. Тогда переменная будет доступна.

source /etc/profile
echo $VAR1

Чтобы удалить эту переменную, удалите строку из файла /etc/profile и измените ее исходный код.

c.) Однако, если вы хотите добавить любую среду, которая должна быть доступна во всей системе, как в сеансах удаленного входа, так и в локальных сеансах (т. е. при открытии нового окна терминала) для всех пользователи, просто экспортируйте переменную в файл /etc/environment.

export VAR12='I am available everywhere'

После этого просто создайте файл, и изменения вступят в силу.

source /etc/environment
echo $VAR12
sudo su
echo $VAR12
exit
ssh localhost
echo $VAR12

Здесь, как мы видим, переменная среды доступна для обычного пользователя, пользователя root, а также для сеанса удаленного входа в систему (здесь для localhost).

Чтобы очистить эту переменную, просто удалите запись в файле /etc/environment и измените ее исходный код или войдите снова.

ПРИМЕЧАНИЕ. Изменения вступят в силу после того, как вы создадите исходный файл. Но если нет, возможно, вам придется выйти из системы и войти снова.

Заключение

Таким образом, это несколько способов изменить переменные среды. Если вы найдете какие-либо новые и интересные трюки, сообщите об этом в своих комментариях.