ZaLinux.ru

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

Как перечислить все имена переменных и их текущие значения? Как показать только переменные окружения? Ответу на эти вопросы посвящена данная статья.

Можно вывести значения переменных по одной, например:

echo $HOME
echo $PWD
echo $USER
echo $SHELL

Если вам нужен полный список, то продолжайте читать.

printenv

Для bash: (стандартная оболочка во многих дистрибутивах Linux)

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

printenv

Для получения дополнительной информации об этой команде прочтите справочную страницу:

man printenv

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

( set -o posix ; set ) | less

Это покажет вам не только переменные оболочки, но и переменные среды.

Аналог этой команды:

POSIXLY_CORRECT=1 set

Для zsh: (оболочка по умолчанию используется в Kali Linux)

Используйте следующую команду:

( setopt posixbuiltin; set; ) | less

Для получения дополнительной информации о параметрах ZSH смотрите справочную страницу

man zshoptions

declare

Вы можете увидеть все переменные с помощью встроенной команды declare.

declare -p

Если вас интересуют только переменные среды, используйте

declare -xp

Запустите «help declare», чтобы увидеть, какие есть другие опции.

Переменные среды, доступные для запуска приложения

Во всех описанных выше методах предлагается следующая процедура:

  • запустить терминал
  • показать переменные среды, используя env, printenv или что-то ещё

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

Это заметно, если, например, вы используете свой ~/.profile, или .bashrc, или .zshenv (в зависимости от вашей оболочки) для изменения переменных среды - как классическое добавление каталогов к PATH.

Чтобы увидеть переменные среды, доступные для приложения, запущенного непосредственно в графической среде, вы можете сделать следующее (в Gnome Shell, я уверен, что есть эквивалентный метод во всех других DE):

  • нажмите Alt-F2
  • запустите команду
xterm -e bash --noprofile --norc

Или, если у вас нет xterm, то запустите:

gnome-terminal - bash --noprofile --norc

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

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

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *