Linux printenv Command Tutorial für Anfänger (mit Beispielen)
Umgebungsvariablen spielen unter Linux eine große Rolle. Die meisten Programme, ob Kommandozeilen- oder GUI-basiert, gehen auf die eine oder andere Weise mit Umgebungsvariablen um. Daher gibt es natürlich Tools, mit denen Sie über die Befehlszeile auf Umgebungsvariablen zugreifen können.
Ein solches Werkzeug ist printenv. In diesem Tutorial werden wir printenv anhand einiger leicht verständlicher Beispiele diskutieren. Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele hier auf einer Ubuntu 18.04 LTS Maschine getestet wurden.
Linux Befehl printenv
Der Befehl printenv unter Linux bietet Ihnen die Möglichkeit, die gesamte oder einen Teil der Umgebung anzuzeigen. Folgendes ist seine Syntax:
printenv [OPTION]... [VARIABLE]...
Und so definiert es die Man Page des Tools:
Print the values of the specified environment VARIABLE(s). If no VARIABLE is specified, print name and value pairs for them all.
Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln sollen, wie der Befehl printenv funktioniert.
Q1. Wie verwendet man printenv?
Die grundlegende Bedienung ist ziemlich einfach. Alles, was Sie tun müssen, ist, printenv sans any arguments auszuführen.
printenv
Nachfolgend ist die Ausgabe auf meinem System dargestellt:
CLUTTER_IM_MODULE=xim LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36: LESSCLOSE=/usr/bin/lesspipe %s %s XDG_MENU_PREFIX=gnome- LANG=en_IN DISPLAY=:0 GNOME_SHELL_SESSION_MODE=ubuntu COLORTERM=truecolor USERNAME=himanshu XDG_VTNR=2 SSH_AUTH_SOCK=/run/user/1000/keyring/ssh MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path XDG_SESSION_ID=2 USER=himanshu DESKTOP_SESSION=ubuntu QT4_IM_MODULE=xim TEXTDOMAINDIR=/usr/share/locale/ GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/44c42800_9a68_408d_8539_7a0e414b7986 DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path PWD=/home/himanshu HOME=/home/himanshu TEXTDOMAIN=im-config SSH_AGENT_PID=1918 QT_ACCESSIBILITY=1 XDG_SESSION_TYPE=x11 XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop XDG_SESSION_DESKTOP=ubuntu GJS_DEBUG_OUTPUT=stderr GTK_MODULES=gail:atk-bridge WINDOWPATH=2 TERM=xterm-256color SHELL=/bin/bash VTE_VERSION=5201 QT_IM_MODULE=xim XMODIFIERS=@im=ibus IM_CONFIG_PHASE=2 XDG_CURRENT_DESKTOP=ubuntu:GNOME GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1 GNOME_TERMINAL_SERVICE=:1.61 XDG_SEAT=seat0 SHLVL=1 GDMSESSION=ubuntu GNOME_DESKTOP_SESSION_ID=this-is-deprecated LOGNAME=himanshu DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus XDG_RUNTIME_DIR=/run/user/1000 XAUTHORITY=/run/user/1000/gdm/Xauthority XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin GJS_DEBUG_TOPICS=JS ERROR;JS LOG SESSION_MANAGER=local/himanshu:@/tmp/.ICE-unix/1823,unix/himanshu:/tmp/.ICE-unix/1823 LESSOPEN=| /usr/bin/lesspipe %s GTK_IM_MODULE=ibus _=/usr/bin/printenv
So können Sie sehen, dass fast alle in meinem System eingestellten Umgebungsvariablen in der Ausgabe erzeugt wurden.
Q2. Wie kann man erreichen, dass bei der Druckausgabe nur Informationen ausgewählt werden?
Angenommen, Sie möchten, dass printenv Details anzeigt, die sich nur auf eine bestimmte Umgebungsvariable in der Ausgabe beziehen, dann müssen Sie nur den Namen dieser Variablen als Eingabe für den Befehl übergeben.
Hier ist ein Beispiel:
printenv SHELL
Und hier ist die Ausgabe, die von diesem Befehl erzeugt wird:
/bin/bash
Natürlich können Sie der Eingabeliste weitere Variablen hinzufügen. Zum Beispiel der folgende Befehl:
printenv SHELL HOME
erzeugte die untenstehende Ausgabe:
/bin/bash /home/himanshu
Q3. Wie kann man erreichen, dass printenv NUL anstelle von Zeilenumbruch verwendet?
Standardmäßig verwendet der Befehl printenv newline als Abschlusszeichen zwischen den Ausgabeeinträgen. Wenn Sie jedoch möchten, können Sie das Tool stattdessen NUL als Terminator verwenden.
Dazu müssen Sie die Kommandozeilenoption –null verwenden. Nachfolgend ein Beispiel:
printenv --null SHELL HOME
Und hier ist ein Screenshot der produzierten Ausgabe:
Fazit
Wenn Ihre Linux-Befehlszeilenarbeit den Umgang mit Umgebungsvariablen beinhaltet, ist der Befehl printenv ein wichtiges Werkzeug, das Sie sich merken sollten. Hier, in diesem Tutorial, haben wir die meisten der Optionen, die dieses Tool bietet, diskutiert. Sobald Sie damit fertig sind, diese zu üben (die Lernkurve ist nicht steil, also sollte es keine Zeit dauern), können Sie zur man page printenv gehen, um mehr über dieses Kommandozeilenprogramm zu erfahren.