Linux: Variables de entorno permanentes

En sistemas Linux podemos ver, crear y modificar variables de entorno.

Por defecto, cuando creamos, modificamos o borramos variables de entorno del sistema, al reiniciar se pierden los cambios efectuados.

Veamos como administrar las variables de entorno en Linux:

Ejecutando los comandos: printenv, env o set, podemos ver las variables de entorno actuales.

Para ver una variable de entorno específica deberemos utilizar printenv, por ejemplo:

[root@LINUX1 ~]# printenv USER
root

Para crear una variable de entorno, utilizaremos el comando export:

[root@LINUX1 ~]# export VARIABLEENTORNO=SYSADMIT

Resultado:

[root@LINUX1 ~]# printenv | grep VARIABLEENTORNO
VARIABLEENTORNO=SYSADMIT

o bien:

[root@LINUX1 ~]# echo $VARIABLEENTORNO
SYSADMIT

Si quisiéramos eliminar la variable de entorno, bastaría con ejecutar:

[root@LINUX1 ~]# export VARIABLEENTORNO=

Resultado:

[root@LINUX1 ~]# echo $VARIABLEENTORNO

¿Cómo configuramos una variable de entorno permanente?


Tendremos que configurar el export que establece la variable de entorno al inicio, editando alguno de los scripts de inicio que se ejecutan de forma predeterminada.

Para ello, disponemos de los siguientes scripts que se cargan al inicio:

Para todos los usuarios: 

/etc/profile

Para un usuario específico:

 ~/.bash_profile

~/.bash_login

~/.profile

El orden de carga de los scripts de inicio es el indicado, es decir primero se ejecuta: /etc/profile y luego al hacer login, por este orden:  ~/.bash_profile, ~/.bash_login, ~/.profile

~/ : Se refiere al home directory del usuario, por ejemplo, para el usuario root:  ~/ equivale a /root/

También podemos ver como los scripts de usuario, tienen un punto al principio del nombre del fichero, por lo tanto son ficheros ocultos.

Podemos ver cómo administrar los ficheros ocultos en Linux, en el siguiente enlace:


Podemos ver las variables de entorno permanentes que se inicializan en /etc/profile, ejecutando:

cat /etc/profile|grep export

Best practice:

Si encontramos el fichero: /etc/environment en nuestro sistema operativo Linux, será el sitio donde ubicar las variables de entorno permanentes.

Tengamos en cuenta que las reglas aquí configuradas se ejecutarán para todos los usuarios.

Ejemplo:

[root@LINUX1 ~]# ls -lF /etc/environment
-rw-r--r--. 1 root root 0 Oct 29  2014 /etc/environment


En este ejemplo, podemos ver como existe el fichero /etc/environment y ocupa 0 bytes, pero al existir, significa que el sistema lo procesará al inicio, por lo tanto si lo editamos y situamos las variables de entorno allí, serán procesadas.

Esta es la forma más limpia de configurar nuestras variables de entorno permanentes a nivel de equipo, ya que la definición de las mismas quedará separada del resto de configuración definida en los scripts de inicio.

El formato del interior de /etc/environment para definir las variables de entorno permanentes es el siguiente:

VARIABLEENTORNO=SYSADMIT

4 comentarios:

  1. buen tutorial lo unico que los comandos mencionados en mi destribucion debian 9.5 van antecedidos por el comando help

    ResponderEliminar
  2. las variables de entorno permanentes son constantes. Como se hace para que sean variables y permanescan, o sea, la cambio y permanece dicho cambio.

    ResponderEliminar
    Respuestas
    1. Hola Carlos,

      Lo tienes explicado en el post.

      Basta con que utilices los ficheros que se ejecutan a cada arranque.

      Un saludo,

      Xavi.

      Eliminar
  3. Excelente explicación, concisa y completa.

    ResponderEliminar