Variables de entorno y comando export

Regla mnemotécnica

export: Exportar (en ingles) al entorno

Variables de entorno

Las llamadas variables de entorno se definen a nivel de sistema operativo para el correcto o mejor funcionamiento del mismo. Muchas de ellas son predefinidas pero cada usuario puede definir también sus propias variables para su entorno. El funcionamiento de las variables de entorno es el mismo que las variables normales. Se suelen diferenciar usando normalmente letras mayúsculas para definirlas.

El comando export

El comando export es el que nos permite crear o modificar variables de entorno. Así

export VARIABLE-NAME

nos exporta VARIABLE-NAME o

export VARIABLE-NAME=valor

nos define y exporta VARIABLE-NAME como variable en entorno al mismo tiempo que el asigna un valor. Si no usásemos el comando export, VARIABLE-NAME se mantendría como una variable normal.

Ejemplos

USER Contine el nombre del usuario.
HOSTNAME Contine el nombre de la máquina.
HOME Indica cual es el directorio home del usuario.
PATH Contine los lugareres o paths del sistema donde se buscarán programas y comandos.
SHELL Indica cual es el intérprete de comando que se esta usando.

Es importante por ejemplo la variable PATH que nos dice donde se encuentran comandos tipo ls, cp, if, etc para su ejecución. Podemos mostrar su valor con

$ echo $PATH

Como veis cada path diferente viene separado por “:“. Podemos modificarla para que busque comandos y programas en la carpeta bin de nuestro home, donde podremos poner nuestros propios programas y scripts para poder ejecutarlos fácilmente desde cualquier directorio sin necesidad de copiarlos.

$ PATH=$PATH:$HOME/bin
$ export PATH
$ #Que es equivalente a ejecutar directamente
$ export PATH=$PATH:$HOME/bin
$ echo $PATH

Como veis hemos añadido al final a la variable PATH la carpeta $HOME/bin, y hemos usado la variable de entorno $HOME. Hay que tener cuidado de añadir y no sustituir con:

$ export PATH=$HOME/bin
$ echo $PATH

donde el comando echo no funcionará pues nuestro PATH será únicamente $HOME/bin, no puede ejecutar el comando echo ni ningún otro porque no va a buscar comandos a ningún otro sitio. Lo más sano en este caso es cerrar la terminal y abrir otra.

Leave a Reply