Ricerca nel sito web

Linux printenv Command Tutorial per principianti (con esempi)


Su questa pagina

  1. Comando Linux printenv
  2. D1. Come usare printenv?
  3. Q2. Come fare in modo che printenv visualizzi solo le informazioni selezionate?
  4. Q3. Come fare in modo che printenv usi NUL invece di newline?
  5. Conclusione

Le variabili d'ambiente svolgono un ruolo importante in Linux. La maggior parte dei programmi, basati sulla riga di comando o sulla GUI, gestiscono le variabili di ambiente in un modo o nell'altro. Quindi, naturalmente, ci sono strumenti che ti consentono di accedere alle variabili d'ambiente dalla riga di comando.

Uno di questi strumenti è printenv. In questo tutorial, discuteremo il comando printenv utilizzando alcuni esempi di facile comprensione. Ma prima di farlo, vale la pena ricordare che tutti gli esempi qui sono stati testati su una macchina Ubuntu 20.04 LTS.

Comando Linux printenv

Il comando printenv in Linux offre la possibilità di visualizzare tutto o una parte dell'ambiente. Di seguito la sua sintassi:

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

Ed ecco come lo definisce la pagina man degli strumenti:

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

Di seguito sono riportati alcuni esempi in stile Q&A che dovrebbero darti un'idea migliore su come funziona il comando printenv.

Q1. Come usare printenv?

L'utilizzo di base è piuttosto semplice. Tutto quello che devi fare è eseguire printenv senza argomenti.

printenv

Di seguito è riportato l'output prodotto sul mio 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
=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

Quindi puoi vedere che quasi tutte le variabili d'ambiente impostate nel mio sistema sono state prodotte in output.

D2. Come fare in modo che printenv visualizzi solo le informazioni selezionate?

Supponiamo che tu voglia che printenv visualizzi i dettagli relativi solo a una specifica variabile d'ambiente in output, quindi tutto ciò che devi fare è passare il nome di quella variabile come input al comando.

Ecco un esempio:

printenv SHELL

Ed ecco l'output prodotto da questo comando:

/bin/bash

Naturalmente, puoi aggiungere più variabili all'elenco di input. Ad esempio, il seguente comando:

printenv SHELL HOME

prodotto l'output mostrato di seguito:

/bin/bash
/home/himanshu

D3. Come fare in modo che printenv usi NUL invece di newline?

Per impostazione predefinita, il comando printenv utilizza la nuova riga come carattere di chiusura tra le voci di output. Tuttavia, se lo desideri, puoi fare in modo che lo strumento utilizzi NUL come terminatore.

Per questo, dovrai usare l'opzione della riga di comando --null. Di seguito è riportato un esempio:

printenv --null SHELL HOME

Ed ecco uno screenshot dell'output prodotto rispetto all'utilizzo di printenv senza l'opzione --null:

Conclusione

Se il tuo lavoro sulla riga di comando di Linux comporta la gestione delle variabili di ambiente, il comando printenv è uno strumento importante da ricordare. Qui, in questo tutorial, abbiamo discusso la maggior parte delle opzioni offerte da questo strumento. Una volta che hai finito di esercitarti (la curva di apprendimento non è ripida, quindi non dovrebbe richiedere tempo), puoi andare alla pagina man di printenv per saperne di più su questa utilità della riga di comando.