Come elencare tutti i nomi di variabili e i loro valori correnti?

293

Come elencare tutti i nomi di variabili e i loro valori correnti?

Includere non solo $HOME , $PWD ecc ma qualsiasi altro che hai definito.

    
posta Strapakowsky 30.03.2013 - 01:36
fonte

7 risposte

415

Immettere il seguente comando in un terminale per stampare tutte le variabili di ambiente:

printenv

Per ulteriori informazioni su questo comando, leggi la % man_de% man page .

Per mostrare una lista che include le "variabili di shell" puoi inserire il prossimo comando:

( set -o posix ; set ) | less

Questo mostrerà non solo le variabili della shell, ma anche le variabili d'ambiente.

Per ulteriori informazioni relative a questo argomento leggi:

risposta data Lucio 30.03.2013 - 02:21
fonte
43

So che questa domanda è piuttosto vecchia e ho risposto, ma penso di poter aggiungere un po 'di informazioni utili.

In tutti i metodi sopra descritti, la procedura suggerita è:

  • avvia un terminale
  • mostra le variabili di ambiente usando env o printenv o qualunque

Il problema di queste soluzioni è che stai vedendo le variabili di ambiente della shell in esecuzione nel terminale . Non stai vedendo le variabili di ambiente disponibili per un'esecuzione di un'applicazione, ad esempio direttamente dall'interfaccia grafica.

Questo è evidente se, ad esempio, si usa il ~/.profile , o .bashrc , o .zshenv (a seconda della shell) per modificare le variabili d'ambiente --- come la classica aggiunta di directory al percorso .

Per vedere le variabili di ambiente disponibili per l'applicazione avviate direttamente nell'ambiente grafico, puoi fare quanto segue (in Gnome Shell, sono sicuro che c'è un metodo equivalente in tutti gli altri DE):

  • premi Alt-F2
  • esegui il comando xterm -e bash --noprofile --norc

Ora hai un terminale con una shell che non ha aggiunto alcuna variabile di ambiente. Puoi usare env qui per elencare tutte le tue variabili d'ambiente:

Ovviamente la nuova shell avrà le variabili di ambiente aggiunte dai file di sistema, ma tali variabili dovrebbero essere comunque disponibili (per ereditarietà) in tutti i programmi del sistema.

Sto postando questo perché è la quarta volta che devo cercare di nuovo questo trucco, controllando il mio file .pam_environment . Così ora lo troverò più velocemente (e nel processo, spero di aiutare qualcun altro ...)

    
risposta data Rmano 12.10.2013 - 02:37
fonte
31

Puoi vedere tutte le variabili con declare incorporato.

declare -p

Se ti interessano solo le variabili di ambiente, utilizza

declare -xp

Esegui help declare per vedere quali sono le altre opzioni.

    
risposta data geirha 04.04.2013 - 22:28
fonte
11

Per elencare le variabili d'ambiente nel terminale con CTRL + ALT + T puoi usare env comando.

ad esempio:

[raja@localhost ~]$ env
XDG_VTNR=1
SSH_AGENT_PID=3671
XDG_SESSION_ID=3
HOSTNAME=localhost.localdomain
IMSETTINGS_INTEGRATE_DESKTOP=yes
GPG_AGENT_INFO=/home/raja/.gnupg/S.gpg-agent:3691:1
GLADE_PIXMAP_PATH=:
TERM=xterm-256color
SHELL=/bin/bash
XDG_MENU_PREFIX=xfce-
DESKTOP_STARTUP_ID=
HISTSIZE=1000
XDG_SESSION_COOKIE=0250277dd805498381e96c05d88068b0-1364679772.845276-1676152201
WINDOWID=65011716
GNOME_KEYRING_CONTROL=/home/raja/.cache/keyring-N3QoQ2
IMSETTINGS_MODULE=none
QT_GRAPHICSSYSTEM_CHECKED=1
USER=raja

ecc.

spero che ti aiuti.

    
risposta data Ten-Coin 30.03.2013 - 17:41
fonte
3

In bash usando compgen:

compgen -v | while read line; do echo $line=${!line};done  
    
risposta data tmgoblin 11.04.2014 - 22:53
fonte
2

env è un POSIX 7 way :

export asdf=qwer
env | grep asdf

Output di esempio:

asdf=qwer

Mostra solo le variabili esportate: le variabili non esportate non sono generalmente considerate "variabili d'ambiente".

Preferisci oltre printenv , che non è POSIX. Entrambi sembrano fare la stessa cosa senza argomenti: link

    
fonte
0

Se vuoi una variabile d'ambiente specifica, invece di stamparle tutte con printenv , puoi ad esempio stamparla facendo echo "$PWD"

    
risposta data inigo333 08.01.2018 - 15:13
fonte

Leggi altre domande sui tag