
Как вывести список имен всех переменных и их текущих значений?
Включая не только $HOME
, $PWD
и т. д., но и любые другие, которые вы определили.
решение1
Для Баша:(стандартная оболочка в Ubuntu)
Введите следующую команду в терминале, чтобы вывести все переменные среды:
printenv
Для получения дополнительной информации об этой команде прочтитеprintenv
страница руководства.
Чтобы отобразить список, включающий «переменные оболочки», вы можете ввести следующую команду:
( set -o posix ; set ) | less
Это покажет вамне толькопеременные оболочки, но и переменные окружения тоже.
Более подробную информацию по этой теме можно найти здесь:
- Как составить список переменных, объявленных в скрипте в bash?отТАКи
- Как вывести все переменные окружения, определенные (но не обязательно экспортированные) в bashот UnixSE
- Переменная окружения и переменная оболочки, в чем разница?
Для ЗШ:(продвинутая оболочка)
Используйте следующую команду:
( 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
и т. д.
надеюсь, это поможет.