Come elencare tutti i nomi di variabili e i loro valori correnti?
Includere non solo $HOME
, $PWD
ecc ma qualsiasi altro che hai definito.
Come elencare tutti i nomi di variabili e i loro valori correnti?
Includere non solo $HOME
, $PWD
ecc ma qualsiasi altro che hai definito.
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:
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 è:
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):
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 ...)
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.
Per elencare le variabili d'ambiente nel terminale con CTRL + ALT + T puoi usare env
comando.
ad esempio:
[[email protected] ~]$ 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.
In bash usando compgen:
compgen -v | while read line; do echo $line=${!line};done
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
Se vuoi una variabile d'ambiente specifica, invece di stamparle tutte con printenv
, puoi ad esempio stamparla facendo echo "$PWD"
Leggi altre domande sui tag command-line bash environment-variables