如何列出所有变量名称及其当前值?
不仅包括等等$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
(或者,如果您没有xterm
,gnome-terminal -- bash --noprofile --norc
---感谢@Mike Nakis 的评论)。
您现在有一个带有 shell 的终端,该终端未添加任何环境变量。您可以使用env
此处列出所有环境变量:
显然,新的 shell 将具有由系统文件添加的环境变量,但无论如何,这些变量应该(通过继承)可供系统中的所有程序使用。
我发布这篇文章是因为这是我第四次需要搜索这个技巧,检查我的.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
ETC。
希望有帮助。