如何列出所有变量名称及其当前值?

如何列出所有变量名称及其当前值?

如何列出所有变量名称及其当前值?

不仅包括等等$HOME$PWD还包括您定义的任何其他内容。

答案1

对于 bash:(Ubuntu 中的标准 shell)

在终端中输入以下命令来打印所有环境变量:

printenv

有关此命令的更多信息,请阅读printenv手册页


要显示包含“shell 变量”的列表,您可以输入下一个命令:

( set -o posix ; set ) | less

这将向你展示不仅shell 变量,还有环境变量。

有关此主题的更多信息请阅读:


对于 zsh:(高级 shell)

使用以下命令:

( setopt posixbuiltin; set; ) | less

有关 ZSH 选项的更多信息,请参阅zshoptions手册页

答案2

您可以使用declare内置命令查看所有变量。

declare -p

如果你只对环境变量感兴趣,请使用

declare -xp

运行help declare以查看其他选项。

答案3

我知道这个问题已经很老了并且已经有答案了,但是我想我可以添加一些有用的信息。

在上述所有方法中,建议的程序是:

  • 启动终端
  • env使用, 或 printenv或其他方式显示环境变量

这些解决方案的问题在于您看到的是环境变量在终端中运行的 shell。您没有看到应用程序运行可用的环境变量,例如直接通过图形界面运行。

例如,如果您使用~/.profile、或.bashrc.zshenv(取决于您的 shell)来修改环境变量 --- 就像在路径中经典地添加目录一样,这一点非常明显。

要查看在图形环境中直接启动的应用程序可用的环境变量,您可以执行以下操作(在 Gnome Shell 中,我相信在所有其他 DE 中都有等效的方法):

  • 按 Alt-F2
  • 运行命令xterm -e bash --noprofile --norc

(或者,如果您没有xtermgnome-terminal -- bash --noprofile --norc---感谢@Mike Nakis 的评论)。

您现在有一个带有 shell 的终端,该终端未添加任何环境变量。您可以使用env此处列出所有环境变量:

裸壳示例

显然,新的 shell 将具有由系统文件添加的环境变量,但无论如何,这些变量应该(通过继承)可供系统中的所有程序使用。

我发布这篇文章是因为这是我第四次需要搜索这个技巧,检查我的.pam_environment文件。所以现在我会更快地找到它(在这个过程中,我希望可以帮助别人……)

答案4

CTRL要使用++在终端中列出环境变量,ALTT可以使用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

ETC。

希望有帮助。

相关内容