Linux en Español

Aprenda Variables de entorno de Linux Guía paso a paso

En las publicaciones anteriores, hablamos sobre algunos de los comandos basicos de linux, hoy continuamos nuestro viaje, y discutiremos acerca de algo muy importante en Linux, las variables de entorno de Linux.

Entonces, ¿qué son las variables de entorno y cuál es el beneficio de conocerlas?


Las variables de entorno se utilizan para almacenar algunos valores que pueden ser utilizados por los scripts desde el shell. No estás limitado a las variables de entorno del shell, puedes crear las tuyas propias.

El shell de bash tiene dos tipos de variables de entorno:

  • Variables locales
  • Variables globales

La variable local es visible solo en el shell donde definió.

La variable global es visible para cualquier proceso en ejecución o que se ejecute desde el shell.

Variables globales

El sistema Linux establece algunas variables de entorno globales cuando inicias sesión en tu sistema y siempre son en LETRAS MAYÚSCULAS para diferenciarlas de las variables de entorno definidas por el usuario.

Para ver estas variables globales, escribe el comando printenv:

printenv command

Como puede ver, hay muchas variables de entorno globales, para imprimir solo una de ellas, escribe el comando echo seguido de $NombreDeVariable. Ej: para imprimir la variable HOME escribe echo $ HOME

home variable



Variables locales

En realidad, el sistema Linux también define algunas variables de entorno locales estándar de forma predeterminada.

Para ver las variables globales y locales del shell que está ejecutando y las que están disponible para ese shell, escribe el comando set.

Declarar variables locales

Para declarar tus propias variables de entorno directamente desde el shell, escribe el nombreDeVariable que desees, seguido de un signo igual y el valor SIN espacios:

mysite=likegeeks

Y para imprimir el valor de la variable, use el comando echo:

echo $mysite

Efectivamente, imprime likegeeks.

local environment variables

OK, ¿y si tu variable es más de una palabra? tal vez una cadena larga, puede poner la cadena entre comillas simples:

mysite=’likegeeks is a website that offers tech tutorials for geeks’

Y si escribimos  echo $mysite

set environment variables

Si olvidas las comillas simples, el shell supondrá que la segunda palabra es otro comando y mostrará un error.

Como puede ver, uso caracteres en minúsculas para que mi variable, no utilizo mayúsculas, esto NO es necesario, solo te ayuda a distinguir entre tus variables de entorno y las variables de entorno del sistema.

Una vez que hayas establecido tu variable local, será visible en el alcance del shell actualmente en ejecución, esto significa que, si inicias otra ventana del shell, la variable no estará disponible en esa nueva ventana.


Declarar variables globales (variables de exportación)

Para declarar una variable de entorno global, debes declarar una variable de entorno local y luego utilizar el comando export de la siguiente manera:

global enviroment variables

Como puedes ver, no utilizo el signo de dólar con el comando export.

Pero sucede que, cuando cierro el shell y lo vuelvo a abrir, la variable ha desaparecido, entonces ¿cómo hacer que sea persistente?


Variables de entorno persistentes

Simplemente debes editar    $HOME/.bashrc y escribir   export myvar='welcome to likegeeks'  y por ultimo guarda el archivo:

print persistent enviroment variable

Eliminar variables de entorno

Esto se puede hacer utilizando el comando unset:

unset enviroment variable

Variables de entorno predeterminadas

Como sabemos, el sistema define algunas variables para nosotros, una de esas es la variable PATH, esta contiene algunas rutas.

Estas rutas son las predeterminadas que utiliza el shell para buscar un comando cuando se escribe en el mismo.

Modificando la variable de entorno PATH

Si agregas una ruta de carpeta a la variable PATH, el shell buscará en esa carpeta cualquier ejecutable que se ejecute cuando escribas cualquier comando.

Simplemente agrega la variable de ruta seguida de dos puntos y el nuevo directorio como se muestra a continuación:

add path to enviroment variable

Y si deseas que la variable PATH persista, debes editar el archivo .bashrc y agregarlo de esta manera:

persistent path variable

Hay un truco útil pero RIESGOSO que algunos administradores de sistemas hacen lo cual es agregar un punto. a la variable de ruta. Al hacer esto, el shell buscará ejecutables en el directorio actual en el que se encuentre, esté donde esté.

Esto es relativamente arriesgado, puede darle un atacante la oportunidad de ejecutar un script malicioso o malware en tu directorio actual, por lo que, si realizas este truco, debes saber porque lo que estás haciendo..


Variables de entorno de Linux del sistema

Puede iniciar un shell de bash de las siguientes maneras:

  • Iniciar sesión shell.
  • El shell interactivo.
  • El shell no interactivo.

Iniciar sesión shell

Cuando inicias sesión en el sistema, la búsqueda de esos archivos de inicio para procesar los comandos de ellos:

  • /etc/profile
  • $HOME/.bash_login
  • $HOME/.bash_profile
  • $HOME/.profile

/etc/profile se ejecuta en cada inicio con cada usuario, los otros 3 archivos se ejecutan para cada usuario específico, puedes llamarlos variables de entorno específicas del usuario.

Shell interactivo

Cuando entras en el modo recuperación, este es el shell interactivo.

Si inicias un shell interactivo, el sistema no buscará / etc / profile sino que buscará .bashrc en tu directorio HOME.

Shell no interactivo

Este shell se ejecuta por el propio sistema para ejecutar un script de shell.

Los usuarios pueden personalizar los archivos mencionados anteriormente para incluir variables de entorno, simplemente edita el archivo que desees, escribe la variable que desees y por ultimo guárdala.

Arreglos de variables

Puedes almacenar muchos valores como desees en una variable de entorno que se llama arreglo.

myvar=(first second third fourth)

Ahora, si comprueba el valor de este arreglo mediante el comando echo, descubrirás que solo devuelve el primer elemento.

Para obtener un elemento específico, simplemente haz referencia a este por su posición, las posiciones comienzan desde cero, así que, para obtener el tercero, debes escribirlo así:

echo ${myvar[2]}

Para mostrar todo el arreglo escribe asterisco en lugar de un número:

echo ${mytest[*]}

variable array

Eliminar elementos

Puede eliminar un elemento del arreglo utilizando usando el comando unset:

unset mytest[2]

O puede eliminar todo el arreglo:

unset myvar

Mokhtar Ebrahim
Estoy trabajando como administrador de sistemas Linux desde 2010. Soy responsable de mantener, proteger y solucionar problemas de servidores Linux para múltiples clientes de todo el mundo. Me encanta escribir guiones de shell y Python para automatizar mi trabajo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *