Как вывести значения всех переменных и переменных окружения в Linux
Как перечислить все имена переменных и их текущие значения? Как показать только переменные окружения? Ответу на эти вопросы посвящена данная статья.
Можно вывести значения переменных по одной, например:
echo $HOME echo $PWD echo $USER echo $SHELL
Если вам нужен полный список, то продолжайте читать.
printenv
Для bash: (стандартная оболочка во многих дистрибутивах Linux)
Введите следующую команду в терминале, чтобы распечатать все переменные среды:
Для получения дополнительной информации об этой команде прочтите справочную страницу:
Чтобы отобразить список, включающий «переменные оболочки», вы можете ввести следующую команду:
Это покажет вам не только переменные оболочки, но и переменные среды.
Для zsh: (оболочка по умолчанию используется в Kali Linux)
Используйте следующую команду:
( setopt posixbuiltin; set; ) | less
Для получения дополнительной информации о параметрах ZSH смотрите справочную страницу
declare
Вы можете увидеть все переменные с помощью встроенной команды declare.
Если вас интересуют только переменные среды, используйте
Запустите «help declare», чтобы увидеть, какие есть другие опции.
Переменные среды, доступные для запуска приложения
Во всех описанных выше методах предлагается следующая процедура:
- запустить терминал
- показать переменные среды, используя env, printenv или что-то ещё
Проблема этих решений заключается в том, что вы видите переменные среды оболочки, запущенной в терминал. Вы не видите переменных среды, доступных для запуска приложения, например, непосредственно в графическом интерфейсе.
Это заметно, если, например, вы используете свой ~/.profile, или .bashrc, или .zshenv (в зависимости от вашей оболочки) для изменения переменных среды — как классическое добавление каталогов к PATH.
Чтобы увидеть переменные среды, доступные для приложения, запущенного непосредственно в графической среде, вы можете сделать следующее (в Gnome Shell, я уверен, что есть эквивалентный метод во всех других DE):
xterm -e bash --noprofile --norc
Или, если у вас нет xterm, то запустите:
gnome-terminal - bash --noprofile --norc
Теперь у вас есть терминал с оболочкой, которая не добавляла никаких переменных среды. Вы можете использовать env здесь, чтобы перечислить все свои переменные среды:
Очевидно, что новая оболочка будет иметь переменные среды, добавленные системными файлами, но эти переменные должны быть доступны (по наследству) для всех программ в системе в любом случае.