¿Cómo enumerar todos los nombres de variables y sus valores actuales?

293

¿Cómo enumerar todos los nombres de variables y sus valores actuales?

Incluyendo no solo $HOME , $PWD etc, sino cualquier otra que haya definido.

    
pregunta Strapakowsky 30.03.2013 - 01:36

7 respuestas

415

Introduzca el siguiente comando en un terminal para imprimir todas las variables de entorno:

printenv

Para obtener más información sobre este comando, lea la página de comando printenv .

Para mostrar una lista que incluye las "variables de shell", puede ingresar el siguiente comando:

( set -o posix ; set ) | less

Esto le mostrará no solo las variables del shell, sino también las variables de entorno.

Para obtener más información relacionada con este tema, lea:

respondido por el Lucio 30.03.2013 - 02:21
43

Sé que esta pregunta es bastante antigua y respondí, pero creo que puedo agregar un poco de información útil.

En todos los métodos descritos anteriormente, el procedimiento sugerido es:

  • iniciar una terminal
  • muestra las variables de entorno usando env , o printenv o lo que sea

El problema de estas soluciones es que está viendo las variables de entorno del shell que se ejecuta en el terminal . No está viendo las variables de entorno disponibles para una aplicación ejecutar, por ejemplo, directamente por la interfaz gráfica.

Esto se nota si, por ejemplo, usa su ~/.profile , o .bashrc , o .zshenv (dependiendo de su caparazón) para modificar las variables de entorno, como la adición clásica de directorios a la ruta .

Para ver las variables de entorno disponibles para la aplicación comenzadas directamente en el entorno gráfico, puede hacer lo siguiente (en Gnome Shell, estoy seguro de que hay un método equivalente en todos los otros DE):

  • presione Alt-F2
  • ejecuta el comando xterm -e bash --noprofile --norc

Ahora tiene un terminal con un shell que no agregó ninguna variable de entorno. Puede usar env aquí para enumerar todas sus variables de entorno:

Obviamente, el nuevo shell tendrá las variables de entorno agregadas por los archivos del sistema, pero esas variables deberían estar disponibles (por herencia) para todos los programas en el sistema de todos modos.

Estoy publicando esto porque es la cuarta vez que tengo que buscar este truco de nuevo, revisando mi archivo .pam_environment . Así que ahora lo encontraré más rápido (y en el proceso, espero ayudar a alguien más ...)

    
respondido por el Rmano 12.10.2013 - 02:37
32

Puede ver todas las variables con declare builtin.

declare -p

Si solo está interesado en variables de entorno, use

declare -xp

Ejecute help declare para ver cuáles son las otras opciones.

    
respondido por el geirha 04.04.2013 - 22:28
11

Para enumerar las variables de entorno en el terminal con CTRL + ALT + T puedes usar env command.

por ejemplo:

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

etc.

espero que ayude.

    
respondido por el Ten-Coin 30.03.2013 - 17:41
3

En bash usando compgen:

compgen -v | while read line; do echo $line=${!line};done  
    
respondido por el tmgoblin 11.04.2014 - 22:53
2

env es un POSIX 7 manera :

export asdf=qwer
env | grep asdf

Salida de muestra:

asdf=qwer

Solo muestra las variables exportadas: las variables no exportadas generalmente no se consideran "variables de entorno".

Prefiere más del printenv , que no es POSIX. Ambos parecen hacer lo mismo sin argumentos: enlace

    
0

Si desea una variable de entorno específica, en lugar de imprimirlas todas con printenv , puede, por ejemplo, imprimirla haciendo echo "$PWD"

    
respondido por el inigo333 08.01.2018 - 15:13

Lea otras preguntas en las etiquetas