如何列出所有變數名稱及其目前值?

如何列出所有變數名稱及其目前值?

如何列出所有變數名稱及其目前值?

不僅包括等$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

(或者,如果您沒有xtermgnome-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。

希望有幫助。

相關內容