
Wie liste ich alle Variablennamen und ihre aktuellen Werte auf?
Einschließlich nicht nur $HOME
, $PWD
usw., sondern auch aller anderen, die Sie definiert haben.
Antwort1
Für Bash:(die Standard-Shell in Ubuntu)
Geben Sie den folgenden Befehl in ein Terminal ein, um alle Umgebungsvariablen auszudrucken:
printenv
Weitere Informationen zu diesem Befehl finden Sie imprintenv
manpage.
Um eine Liste mit den „Shell-Variablen“ anzuzeigen, können Sie den nächsten Befehl eingeben:
( set -o posix ; set ) | less
Dies wird Ihnen zeigennicht nurdie Shell-Variablen, aber auch die Umgebungsvariablen.
Weitere Informationen zu diesem Thema finden Sie unter:
- Wie liste ich in einem Skript in Bash deklarierte Variablen auf?ausALSOUnd
- So drucken Sie alle in Bash definierten (aber nicht unbedingt exportierten) Umgebungsvariablenaus UnixSE
- Umgebungsvariable vs. Shellvariable, was ist der Unterschied?
Für zsh:(eine erweiterte Shell)
Verwenden Sie den folgenden Befehl:
( setopt posixbuiltin; set; ) | less
Weitere Informationen zu ZSH-Optionen finden Sie unterzshoptions
manpage.
Antwort2
Sie können alle Variablen mit dem integrierten Tool sehen declare
.
declare -p
Wenn Sie nur an Umgebungsvariablen interessiert sind, verwenden Sie
declare -xp
Führen Sie es aus help declare
, um zu sehen, welche anderen Optionen es gibt.
Antwort3
Ich weiß, dass diese Frage ziemlich alt und bereits beantwortet ist, aber ich denke, ich kann ein paar nützliche Informationen hinzufügen.
Bei allen oben beschriebenen Methoden wird folgende Vorgehensweise empfohlen:
- Starten Sie ein Terminal
- Zeigen Sie die Umgebungsvariablen mit
env
, oderprintenv
oder was auch immer an.
Das Problem dieser Lösungen ist, dass Sie die Umgebungsvariablen sehender Shell, die in das Terminal ausgeführt wird. Sie sehen nicht die Umgebungsvariablen, die einer beispielsweise direkt über die grafische Benutzeroberfläche ausgeführten Anwendung zur Verfügung stehen.
Dies macht sich beispielsweise bemerkbar, wenn Sie Ihre ~/.profile
, oder .bashrc
, oder .zshenv
(je nach Shell) verwenden, um die Umgebungsvariablen zu ändern – wie das klassische Hinzufügen von Verzeichnissen zum Pfad.
Um die für die direkt in der Grafikumgebung gestartete Anwendung verfügbaren Umgebungsvariablen anzuzeigen, können Sie Folgendes tun (in Gnome Shell, ich bin sicher, dass es in allen anderen DEs eine entsprechende Methode gibt):
- drücken Sie Alt-F2
- Führen Sie den Befehl aus
xterm -e bash --noprofile --norc
(Oder, wenn Sie keins haben xterm
, gnome-terminal -- bash --noprofile --norc
--- Danke an @Mike Nakis für den Kommentar).
Sie haben jetzt ein Terminal mit einer Shell, die keine Umgebungsvariablen hinzugefügt hat. Sie können env
hier alle Ihre Umgebungsvariablen auflisten:
Natürlich werden der neuen Shell die Umgebungsvariablen aus den Systemdateien hinzugefügt, aber diese Variablen sollten ohnehin (durch Vererbung) allen Programmen im System zur Verfügung stehen.
Ich poste das, weil ich diesen Trick jetzt schon zum vierten Mal suchen muss, wenn ich meine .pam_environment
Datei überprüfe. So werde ich ihn jetzt schneller finden (und hoffe, dabei jemand anderem zu helfen ...)
Antwort4
Um die Umgebungsvariablen im Terminal mit CTRL+ ALT+ aufzulisten T, können Sie env
den Befehl verwenden.
Zum Beispiel :
[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
usw.
Ich hoffe, das hilft.