Переменные окружения являются важным механизмом в операционных системах, позволяющим настраивать поведение программ и процессов. В Linux переменные окружения используются для хранения различных типов информации, таких как пути к исполняемым файлам, настройки локализации и параметры работы программ. В этой статье рассмотрим, как просматривать, задавать и управлять переменными окружения в Linux.
1. Просмотр переменных окружения
Для просмотра всех переменных окружения, доступных в текущей сессии, используется команда env
. Просто введите:
env
Результат будет представлен в виде списка переменных и их значений:
USER=username
HOME=/home/username
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
LANG=en_US.UTF-8
Каждая строка представляет собой пару «переменная-значение». Например, переменная USER
хранит имя текущего пользователя, а PATH
содержит список каталогов, в которых система ищет исполняемые файлы.
2. Установка переменных окружения
Задание переменной для текущего сеанса (команда set
)
Для задания переменной окружения только для текущего сеанса используется команда set
:
set MY_VAR="Hello, World!"
Теперь переменная MY_VAR
доступна в текущем сеансе. Её значение можно проверить с помощью команды echo
:
echo $MY_VAR
Результат:
Hello, World!
Обратите внимание, что данная переменная исчезнет после закрытия текущего терминала или завершения сеанса.
Установка переменной для текущего и дочерних процессов (команда export
)
Чтобы переменная была доступна не только в текущем сеансе, но и во всех дочерних процессах, используется команда export
:
export MY_VAR="Hello, World!"
Теперь переменная MY_VAR
будет доступна в текущем сеансе и во всех процессах, запущенных из этого сеанса. Например, если запустить скрипт, он сможет использовать эту переменную.
Постоянная установка переменной (файл /etc/profile
)
Для того чтобы переменная была доступна для всех пользователей и всех процессов на постоянной основе, её нужно добавить в файл /etc/profile
. Этот файл выполняется при входе в систему.
Откройте файл в текстовом редакторе (например, nano
или vim
):
sudo nano /etc/profile
Добавьте строку с экспортом переменной:
export MY_VAR="Hello, World!"
Сохраните файл и выйдите из редактора. Чтобы изменения вступили в силу, выполните:
source /etc/profile
Теперь переменная MY_VAR
будет доступна для всех пользователей и процессов.
3. Просмотр переменных окружения текущего процесса
Команда set
Команда set
без аргументов выводит не только переменные окружения, но и другие параметры текущего сеанса, такие как функции и псевдонимы. Чтобы увидеть только переменные окружения, используйте команду env
.
Просмотр переменных окружения другого процесса (файл /proc/<pid>/environ
)
Каждый процесс в Linux имеет уникальный идентификатор (PID). Переменные окружения, используемые процессом, хранятся в файле /proc/<pid>/environ
, где <pid>
— идентификатор процесса.
Например, чтобы посмотреть переменные окружения процесса с PID 1234, выполните:
cat /proc/1234/environ
Результат будет представлен в виде строки, где переменные разделены нулевыми символами. Чтобы сделать вывод более читаемым, используйте команду tr
:
cat /proc/1234/environ | tr '\0' '\n'
Пример результата:
USER=username
HOME=/home/username
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
4. Примеры использования
Пример 1: Установка переменной PATH
Допустим, вы хотите добавить каталог /opt/myapp/bin
в переменную PATH
, чтобы система могла находить исполняемые файлы в этой директории. Выполните:
export PATH=$PATH:/opt/myapp/bin
Теперь команды из каталога /opt/myapp/bin
будут доступны в текущем сеансе.
Пример 2: Использование переменной в скрипте
Создайте скрипт test.sh
:
#!/bin/bash
echo "MY_VAR is set to: $MY_VAR"
Сделайте его исполняемым:
chmod +x test.sh
Задайте переменную MY_VAR
и запустите скрипт:
export MY_VAR="Hello, World!"
./test.sh
Результат:
MY_VAR is set to: Hello, World!
Пример 3: Просмотр переменных окружения процесса
Найдите PID процесса (например, bash
) с помощью команды ps
:
ps aux | grep bash
Предположим, PID равен 5678. Просмотрите переменные окружения:
cat /proc/5678/environ | tr '\0' '\n'
Заключение
Переменные окружения — это инструмент для настройки и управления процессами в Linux. Вы можете просматривать их с помощью команды env
, задавать для текущего сеанса с помощью set
, экспортировать для дочерних процессов с помощью export
и настраивать глобально через файл /etc/profile
. Также можно просматривать переменные окружения любого процесса через файл /proc/<pid>/environ
.
Используя эти возможности, вы сможете гибко настраивать свою систему и автоматизировать задачи.