Tutorial del comando printenv de Linux para principiantes (con ejemplos)

Tutorial del comando printenv de Linux para principiantes (con ejemplos)

Las variables de entorno juegan un papel importante en Linux. La mayor√≠a de los programas, ya sean basados ‚Äč‚Äčen l√≠nea de comandos o basados ‚Äč‚Äčen GUI, manejan las variables de entorno de una forma u otra. Naturalmente, existen herramientas que le permiten acceder a las variables de entorno desde la l√≠nea de comandos.

Una de esas herramientas es imprimirv. En este tutorial, discutiremos el comando printenv usando algunos ejemplos fáciles de entender. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos aquí se han probado en una máquina con Ubuntu 20.04 LTS.

Comando printenv de Linux

El comando printenv en Linux le brinda la capacidad de ver todo o parte del entorno. A continuación se muestra su sintaxis:

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

Y así es como la página de manual de la herramienta lo define:

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

Los siguientes son algunos ejemplos de estilo de preguntas y respuestas que le darán una mejor idea de cómo funciona el comando printenv.

Q1. ¬ŅC√≥mo usar printenv?

El uso b√°sico es bastante f√°cil. Todo lo que tiene que hacer es ejecutar printenv sin argumentos.

printenv

La siguiente es la salida producida en mi sistema:

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

Entonces puede ver que casi todas las variables de entorno configuradas en mi sistema se produjeron en la salida.

Q2. ¬ŅC√≥mo hacer que printenv muestre solo informaci√≥n seleccionada?

Suponga que desea que printenv muestre detalles relacionados solo con una variable de entorno específica en la salida, entonces todo lo que tiene que hacer es pasar el nombre de esa variable como entrada al comando.

Aquí hay un ejemplo:

printenv SHELL

Y aquí está la salida producida por este comando:

/bin/bash

Por supuesto, puede agregar m√°s variables a la lista de entrada. Por ejemplo, el siguiente comando:

printenv SHELL HOME

produjo la salida que se muestra a continuación:

/bin/bash
/home/himanshu

Q3. ¬ŅC√≥mo hacer que printenv use NUL en lugar de nueva l√≠nea?

De forma predeterminada, el comando printenv usa nueva línea como carácter de terminación entre las entradas de salida. Sin embargo, si lo desea, puede hacer que la herramienta utilice NUL como terminador.

Para esto, deber√° usar la opci√≥n de l√≠nea de comando –null. El siguiente es un ejemplo:

printenv --null SHELL HOME

Y aqu√≠ hay una captura de pantalla de la salida producida en comparaci√≥n con el uso de printenv sin la opci√≥n –null:

Conclusión

Si su trabajo de línea de comandos de Linux implica lidiar con variables de entorno, el comando printenv es una herramienta importante para recordar. Aquí, en este tutorial, hemos discutido la mayoría de las opciones que ofrece esta herramienta. Una vez que haya terminado de practicar estos (la curva de aprendizaje no es pronunciada, por lo que no debería tomar tiempo), puede dirigirse a printenv página man para obtener más información sobre esta utilidad de línea de comandos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *