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

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

В Windows вы можете использовать следующее окно для установки переменных среды, которые будут иметь каждый процесс после выполнения:

введите описание изображения здесь

Можно ли сделать то же самое в Linux?

решение1

Способ установки переменных среды для пользовательских приложений через пользовательский интерфейс работает несколько по-разному в Windows и Linux. Интерфейс Windows, который вы используете, изменяет как значения переменных в текущем сеансе, так и значения для будущих сеансов.

В Linux традиционные способы задания переменных окружения работают во время входа в систему. Есть несколько способов сделать это, но они подразумевают изменение файлов, которые считываются только во время входа в систему. Поэтому они не применяются к текущему сеансу. Основные файлы, которые вы можете использовать для этого, это .profileи .pam_environment, оба в вашем домашнем каталоге; см.Какой наилучший способ настройки переменных окружения, не зависящий от дистрибутива/оболочки?для более подробного обсуждения.

Чтобы задать переменные среды для текущего сеанса, вам нужно задать их в процессе, который запускает приложения: оболочка GUI. В Windows это просто, потому что нет реального выбора оболочки GUI. (Технически возможно заменить оболочку по умолчанию, но очень немногие пользователи делают это.) В Linux существуют сотни возможных оболочек GUI — оболочка GUI обычнооконный менеджер, иногда отдельный компонентсреда рабочего стола. Не существует стандартного способа установки переменных окружения в оконном менеджере или среде рабочего стола: у каждого WM/DE свой собственный способ (а у некоторых, к сожалению, его вообще нет).

WM/DE агностик изменения переменных окружения — это редактирование ~/.profile. Базовый синтаксис (есть и другие способы) — это

export MYVAR='the value of the variable'

Затем запустите терминал (в котором запущена оболочка) и в этой оболочке введите

. ~/.profile

Это загружает новые значения переменных окружения из .profile. После этого, если вы запустите программу из этой оболочки, новые переменные будут применены к этой программе. Но если вы запустите программу непосредственно из меню GUI, программа унаследует окружение программы, которая предоставляет меню GUI, поэтому, если вы хотите изменить это, вам придется использовать любой способ, который предоставляет эта программа (или сопутствующую программу как часть окружения рабочего стола).

решение2

Вы можете задать переменную в /etc/environmentфайле. Формат должен быть таким:

VARIABLE=value

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

решение3

Переменные среды по своей природе доступны всем процессам, запущенным процессом/оболочкой, которые устанавливают переменные среды.

Переменная среды в Unix — это переменная оболочки, которая экспортируется с помощью export, например,

MYVAR="my value"
export MYVAR

Обычно вы устанавливаете переменные окружения в файле запуска оболочки. В случае bash, это в ~/.bash_profile, и многие другие оболочки используют ~/.profile.

/etcВ разделе (например ) находятся общесистемные скрипты инициализации оболочки /etc/profile, которые можно использовать для настройки среды для всех пользователей.

Переменные окружения также могут быть установлены глобально для всех пользователей в оболочке-агностической манере, но это делается по-разному в зависимости от вашего вкуса Unix. Большинство BSD могут делать это путем модификации, /etc/login.confв то время как некоторые Linux используют /etc/environmentили другие механизмы.

Связанный контент