Как перечислить все имена переменных и их текущие значения? Как показать только переменные окружения? Ответу на эти вопросы посвящена данная статья.
Можно вывести значения переменных по одной, например:
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 здесь, чтобы перечислить все свои переменные среды:
Очевидно, что новая оболочка будет иметь переменные среды, добавленные системными файлами, но эти переменные должны быть доступны (по наследству) для всех программ в системе в любом случае.
Связанные статьи:
- Что такое ZSH и почему его следует попробовать в качестве альтернативы Bash? (66.1%)
- Как узнать, какая оболочка используется в Linux (66.1%)
- Скрипты, выполняемые при запуске Bash (53.3%)
- Как проверить использование памяти на Linux (50%)
- Как закрыть терминал без убийства запущенной в нём команды (50%)
- Работа LibreOffice в командной строке: конвертирование большого количества файлов и вывод содержимого офисных файлов в консоль (RANDOM - 3.3%)