GNU/Linux >> Linux Esercitazione >  >> Linux

Esercitazione sui comandi di Linux printenv per principianti (con esempi)

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

Uno di questi strumenti è printenv . In questo tutorial, discuteremo del comando printenv usando alcuni esempi di facile comprensione. Ma prima di farlo, vale la pena ricordare che tutti gli esempi qui presenti 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 parte dell'ambiente. Di seguito è riportata la sua sintassi:

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

Ed ecco come lo definisce la pagina man dello strumento:

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 domande e risposte che dovrebbero darti un'idea migliore di come funziona il comando printenv.

Q1. Come usare printenv?

L'utilizzo di base è abbastanza semplice. Tutto quello che devi fare è eseguire printenv senza alcun argomento.

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
[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

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

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

Supponiamo di volere printenv per visualizzare i dettagli relativi solo a una specifica variabile di 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 comando seguente:

printenv SHELL HOME

prodotto l'output mostrato di seguito:

/bin/bash
/home/himanshu

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

Per impostazione predefinita, il comando printenv utilizza newline 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. Segue 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 da riga di comando Linux prevede la gestione di 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 utility da riga di comando.


Linux
  1. Linux expand Command Tutorial per principianti (con esempi)

  2. Tutorial sui comandi di Linux factor per principianti (con esempi)

  3. Linux yes Command Tutorial per principianti (con esempi)

  4. Esercitazione sui comandi nproc Linux per principianti (con esempi)

  5. Tutorial sui comandi di sospensione di Linux per principianti (con esempi)

Linux sha1sum Command Tutorial per principianti (con esempi)

Tutorial sui comandi per l'aspetto di Linux per principianti (con esempi)

Esercitazione sui comandi lsattr Linux per principianti (con esempi)

Linux tload Command Tutorial per principianti (con esempi)

Linux znew Command Tutorial per principianti (con esempi)

Linux tr Command Tutorial per principianti (con esempi)