Linux printv Command Tutorial voor Beginners (met voorbeelden)

Omgevingsvariabelen spelen een belangrijke rol in Linux. De meeste programma’s, of ze nu op de commandoregel of op de GUI gebaseerd zijn, hebben op de een of andere manier met omgevingsvariabelen te maken. Dus zijn er natuurlijk hulpmiddelen waarmee je omgevingsvariabelen vanaf de commandoregel kunt benaderen.

Eén zo’n hulpmiddel is printenv. In deze handleiding bespreken we het commando printenv aan de hand van enkele gemakkelijk te begrijpen voorbeelden. Maar voor we dat doen, is het de moeite waard te vermelden dat alle voorbeelden hier getest zijn op een Ubuntu 20.04 LTS machine.

Linux printenv commando

Het printenv commando in Linux geeft je de mogelijkheid om de hele omgeving of een deel ervan te bekijken. Hieronder volgt de syntaxis ervan:

printenv [OPTION]... [VARIABLE]...

En hier is hoe de man pagina van het gereedschap het definieert:

Print the values of the specified environment VARIABLE(s). If no VARIABLE is specified, print 
name and value pairs for them all.

Hieronder volgen enkele vraag-antwoord-achtige voorbeelden die je een beter idee moeten geven over hoe het printenv commando werkt.

Q1. Hoe gebruik je printenv?

Het basisgebruik is vrij eenvoudig. Alles wat je hoeft te doen is printenv uit te voeren, zonder argumenten.

printenv

Hieronder volgt de uitvoer die op mijn systeem geproduceerd wordt:

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
[email protected]=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

Je ziet dus dat bijna alle omgevingsvariabelen die in mijn systeem waren ingesteld in de uitvoer werden geproduceerd.

Q2. Hoe kan ik printenv alleen select info laten weergeven?

Stel dat je wilt dat printenv alleen details met betrekking tot een bepaalde omgevingsvariabele in uitvoer weergeeft, dan hoef je alleen maar de naam van die variabele als invoer aan het commando door te geven.

Hier zie je een voorbeeld:

printenv SHELL

En hier is de uitvoer die dit commando oplevert:

/bin/bash

Natuurlijk kun je meer variabelen aan de invoerlijst toevoegen. Bijvoorbeeld, het volgende commando:

printenv SHELL HOME

produceerde de hieronder getoonde uitvoer:

/bin/bash
/home/himanshu

Q3. Hoe kan ik printenv NUL laten gebruiken in plaats van newline?

Standaard gebruikt het printv commando newline als afsluitend teken tussen uitvoerinvoer. Als je wilt, kun je het gereedschap echter in plaats daarvan NUL als afsluiter laten gebruiken.

Hiervoor moet je de –null commandoregel optie gebruiken. Hieronder zie je een voorbeeld:

printenv --null SHELL HOME

En hier is een schermafbeelding van de uitvoer die wordt geproduceerd vergeleken met het gebruik van printenv zonder –null optie:

Conclusie

Als je bij je Linux commando-regel werk te maken hebt met omgevingsvariabelen, is het printenv commando een belangrijk hulpmiddel om te onthouden. Hier, in deze handleiding, hebben we het merendeel van de opties besproken die dit hulpmiddel biedt. Als je eenmaal klaar bent met deze te oefenen (de leercurve is niet steil, dus het zou geen tijd mogen kosten), kun je naar de printenvman pagina gaan om meer over dit commandoregel hulpprogramma te leren.