
如何列出所有變數名稱及其目前值?
不僅包括等$HOME
,$PWD
還包括您定義的任何其他內容。
答案1
對於bash:(Ubuntu 中的標準 shell)
在終端機中輸入以下命令以列印所有環境變數:
printenv
有關此命令的更多信息,請閱讀printenv
手冊頁。
若要顯示包含「shell 變數」的列表,您可以輸入以下命令:
( set -o posix ; set ) | less
這將向您展示不僅shell 變量,還有環境變數。
有關此主題的更多信息,請閱讀:
對於 zsh:(高級外殼)
使用以下命令:
( 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。
希望有幫助。