Variables de entorno en GNU/Linux

Las variables de entorno suele ser algo que siempre tenemos que añadir cada vez que vamos a programar utilizando librerías o partes de código ya hecho, en estos casos se definen variables de entorno para indicar la ruta de dichas librerías, la ruta del compilador, la ruta de ejecución, etc.

En realidad las variables de entorno pueden almacenar todo tipo de datos, y se pueden usar para muchos fines, pero puedes que te preguntes:

¿Qué es una variable de entorno?

Las variables de entorno son variables que se encuentran disponibles para todos los programas y scripts durante una sesión de usuario, es decir, desde que se inicia el sistema operativo hasta que lo apagamos, la mayoría de estas variables incluso perduran y mantienen su valor entre sesiones.

¿Cómo puedo ver las variables de entorno que hay disponibles en mi sistema?

Con el comando env , simplemente abre una terminal y introduce env, te saldrá una lista de las variables y su valor.

Code:
[vampird@sharwyn]:~$ env
LESSKEY=/etc/lesskey.bin
MANPATH=/usr/lib64/mpi/gcc/openmpi/share/man:/usr/local/man:/usr/local/share/man:/usr/share/man
NNTPSERVER=news
SSH_AGENT_PID=2314
KDE_MULTIHEAD=false
DM_CONTROL=/var/run/xdmctl
HOSTNAME=sharwyn.celestialbeing
XKEYSYMDB=/usr/share/X11/XKeysymDB
GPG_AGENT_INFO=/tmp/gpg-gAWcG0/S.gpg-agent:2313:1
TERM=xterm
SHELL=/bin/bash
HOST=sharwyn.celestialbeing
HISTSIZE=1000
XDG_SESSION_COOKIE=bce8d279423663d4735b9a3c000003e1-1285949635.992786-1835840089
XDM_MANAGED=method=classic
PROFILEREAD=true
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/vampird/.gtkrc-2.0-kde4:/home/vampird/.gtkrc-2.0-kde4:/home/vampird/.gtkrc-2.0-qtengine:/home/vampird/.gtkrc-2.0:/home/vampird/.kde4/share/config/gtkrc-2.0
KONSOLE_DBUS_SERVICE=:1.23
TMPDIR=/tmp
GTK_RC_FILES=/etc/gtk/gtkrc:/home/vampird/.gtkrc::/home/vampird/.kde4/share/config/gtkrc
GS_LIB=/home/vampird/.fonts
WINDOWID=10485840
MORE=-sl
QTDIR=/usr/Qt-Win32
XSESSION_IS_UP=yes
KDE_FULL_SESSION=true
USER=vampird
JRE_HOME=/usr/lib64/jvm/jre
LD_LIBRARY_PATH=/home/vampird/lib
LS_COLORS=no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.lzma=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.xz=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:
PILOTPORT=usb:
XNLSPATH=/usr/share/X11/nls
ENV=/etc/bash.bashrc
HOSTTYPE=x86_64
SSH_AUTH_SOCK=/tmp/ssh-LgCJC2223/agent.2223
FROM_HEADER=
SESSION_MANAGER=local/sharwyn.celestialbeing:@/tmp/.ICE-unix/2429,unix/sharwyn.celestialbeing:/tmp/.ICE-unix/2429
PAGER=less
CSHEDIT=emacs
XDG_CONFIG_DIRS=/etc/xdg
MINICOM=-c on
DESKTOP_SESSION=default
PATH=/usr/lib64/mpi/gcc/openmpi/bin:/home/vampird/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib64/jvm/jre/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/sbin:/usr/java/jdk1.5.0_09/bin/:/usr/xds/bin:/usr/sbin:/usr/java/jdk1.5.0_09/bin/:/usr/xds/bin
MAIL=/var/spool/mail/vampird
CPU=x86_64
QT_IM_MODULE=xim
JAVA_BINDIR=/usr/lib64/jvm/jre/bin
PWD=/home/vampird
INPUTRC=/home/vampird/.inputrc
XMODIFIERS=@im=local
JAVA_HOME=/usr/lib64/jvm/jre
LANG=en_US.UTF-8
KDE_SESSION_UID=1000
PYTHONSTARTUP=/etc/pythonstart
QMAKESPEC=linux-g++-64
KONSOLE_DBUS_SESSION=/Sessions/3
SSH_ASKPASS=/usr/lib64/ssh/x11-ssh-askpass
QT_SYSTEM_DIR=/usr/share/desktop-data
COLORFGBG=15;0
SHLVL=2
HOME=/home/vampird
OSTYPE=linux
KDE_SESSION_VERSION=4
LANGUAGE=
LESS_ADVANCED_PREPROCESSOR=no
LS_OPTIONS=-N --color=tty -T 0
XCURSOR_THEME=Oxygen_Black
WINDOWMANAGER=/usr/bin/startkde
LESS=-M -I -R
G_FILENAME_ENCODING=@locale,UTF-8,ISO-8859-15,CP1252
LOGNAME=vampird
MACHTYPE=x86_64-suse-linux
CVS_RSH=ssh
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Blsoy1aWBQ,guid=ff9578043ce330ecd3f0fe3200000037
XDG_DATA_DIRS=/usr/share:/etc/opt/kde3/share:/opt/kde3/share
LESSOPEN=lessopen.sh %s
USE_FAM=
WINDOWPATH=7
PROFILEHOME=
DISPLAY=:0
QT_PLUGIN_PATH=/home/vampird/.kde4/lib64/kde4/plugins/:/usr/lib64/kde4/plugins/
GTK_IM_MODULE=cedilla
XAUTHLOCALHOSTNAME=sharwyn.celestialbeing
LESSCLOSE=lessclose.sh %s %s
QT_IM_SWITCHER=imsw-multi
G_BROKEN_FILENAMES=1
COLORTERM=1
JAVA_ROOT=/usr/lib64/jvm/jre
mc=() {  . /usr/share/mc/bin/mc-wrapper.sh
}
_=/usr/bin/env
[vampird@sharwyn]:~$

Si sólo quieres saber el valor de una variable concreta teclea en la terminal el siguiente comando: echo $NOMBRE_DE_VARIABLE

Code:
[vampird@sharwyn]:~$ echo $HOST
sharwyn.celestialbeing
[vampird@sharwyn]:~$

¿Cómo añado una variable de entorno?

Con el comando (en bash, en otros shell puede variar): export VARIABLE=valor

Code:
[vampird@sharwyn]:~$ export VAR=26
[vampird@sharwyn]:~$

¿Cómo uso una variable de entorno?

Esto es muy fácil, sustituye el valor donde la quieras usar por: $NOMBRE_DE_VARIABLE

Por ejemplo supongamos que tenemos la variable VAR=26 , podemos usarlo de la siguiente manera: VAR2=2 * $VAR . De esta forma VAR2 tomaría el valor 2+26.

Code:
[vampird@sharwyn]:~$ VAR=26
[vampird@sharwyn]:~$ VAR2=2+$VAR
[vampird@sharwyn]:~$ echo $VAR2
2+26
[vampird@sharwyn]:~$

Nota final

Normalmente todos los sistemas operativos tienen un número mínimo de variables de entorno predefinidas que le sirven al propio sistema para funcionar correctamente. Por este motivo, si no conoces muy bien tu sistema, y no estás seguro de si alguna variable la has añadido tú, es mejor no tocarla.

Si te has fijado en los ejemplos anteriores, hemos puesto siempre las variables con mayúsculas, esto es un convenio, y es mejor respetarlo. Siempre es recomendable ejecutar el comando env (para ver las variables existentes) antes de añadir una nueva.

=-=-=-=-=
Powered by Blogilo

Anuncios

Etiquetas: , ,

Ninguna respuesta to “Variables de entorno en GNU/Linux”

  1. xav_sal Says:

    Muchas gracias por tu aportación.

    Me ha servido muchísimo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: