Как вывести список имен всех переменных и их текущих значений?

Как вывести список имен всех переменных и их текущих значений?

Как вывести список имен всех переменных и их текущих значений?

Включая не только $HOME, $PWDи т. д., но и любые другие, которые вы определили.

решение1

Для Баша:(стандартная оболочка в Ubuntu)

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

printenv

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


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

( set -o posix ; set ) | less

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

Более подробную информацию по этой теме можно найти здесь:


Для ЗШ:(продвинутая оболочка)

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

( setopt posixbuiltin; set; ) | less

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

решение2

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

declare -p

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

declare -xp

Запустите help declare, чтобы посмотреть, какие еще есть варианты.

решение3

Я знаю, что этот вопрос довольно старый и на него уже есть ответ, но думаю, что могу добавить немного полезной информации.

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

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

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

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

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

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

(Или, если у вас нет xterm, gnome-terminal -- bash --noprofile --norc--- спасибо @Mike Nakis за комментарий).

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

Пример голой оболочки

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

Я публикую это, потому что мне уже четвертый раз приходится искать этот трюк, проверяя свой .pam_environmentфайл. Так что теперь я найду его быстрее (и в процессе, я надеюсь, помогу кому-то еще...)

решение4

Чтобы вывести список переменных среды в терминале с помощью CTRL+ ALT+, Tможно использовать envкоманду.

например :

[raja@localhost ~]$ env
XDG_VTNR=1
SSH_AGENT_PID=3671
XDG_SESSION_ID=3
HOSTNAME=localhost.localdomain
IMSETTINGS_INTEGRATE_DESKTOP=yes
GPG_AGENT_INFO=/home/raja/.gnupg/S.gpg-agent:3691:1
GLADE_PIXMAP_PATH=:
TERM=xterm-256color
SHELL=/bin/bash
XDG_MENU_PREFIX=xfce-
DESKTOP_STARTUP_ID=
HISTSIZE=1000
XDG_SESSION_COOKIE=0250277dd805498381e96c05d88068b0-1364679772.845276-1676152201
WINDOWID=65011716
GNOME_KEYRING_CONTROL=/home/raja/.cache/keyring-N3QoQ2
IMSETTINGS_MODULE=none
QT_GRAPHICSSYSTEM_CHECKED=1
USER=raja

и т. д.

надеюсь, это поможет.

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