Cómo configurar y enumerar las variables de entorno en Linux

27 feb 2021 5 min di lettura
Cómo configurar y enumerar las variables de entorno en Linux
Indice dei contenuti

Introducción

En los sistemas basados en Linux y Unix, las variables de entorno son un conjunto de valores nominales dinámicos, almacenados en el sistema y utilizados por aplicaciones lanzadas en shells o subhells. En pocas palabras, una variable de entorno es una variable con un nombre y un valor asociados.

Las variables de entorno le permiten personalizar el comportamiento del sistema y el comportamiento de las aplicaciones en el sistema. Por ejemplo, la variable de entorno puede almacenar información sobre el editor de texto o el navegador predeterminado, la ubicación de los archivos ejecutables o la configuración regional del sistema y la distribución del teclado.

En esta guía, explicaremos cómo leer y configurar las variables de entorno y shell.

Variables de entorno y variables de shell

Las variables tienen el siguiente formato:

KEY=valore
 KEY="Questo è un valore"
 KEY=valore1:valore2
  • Los nombres de las variables distinguen entre mayúsculas y minúsculas. Por convención, las variables de entorno deben tener nombres en MAYÚSCULAS.
  • Cuando asigna varios valores a la variable, deben estar separados por dos puntos :
  • No hay espacio alrededor del símbolo igual =.

Las variables se pueden clasificar en dos categorías principales, variables de entorno y variables de shell.

Las variables de entorno son variables disponibles a nivel del sistema y son heredadas por todos los procesos secundarios y shells generados.

Las variables de shell son variables que se aplican solo a la instancia de shell actual. Cada shell, como zsh y bash, tiene su propio conjunto de variables de shell internas.

Hay varios comandos que le permiten enumerar y establecer variables de entorno en Linux:

  • env: el comando le permite ejecutar otro programa en un entorno personalizado sin cambiar el actual. Si se usa sin un argumento, imprimirá una lista de las variables de entorno actuales.
  • printenv: el comando imprime todas o las variables de entorno especificadas.
  • set: el comando establece o borra las variables del shell. Cuando se usa sin un argumento, imprimirá una lista de todas las variables, incluidas las variables de entorno y shell y las funciones de shell.
  • unset: el comando elimina el shell y las variables de entorno.
  • export: el comando establece las variables de entorno.

Enumere las variables de entorno

El comando más utilizado para ver las variables de entorno es printenv. Si el nombre de la variable se pasa como argumento al comando, solo se muestra el valor de esa variable. Si no se especifican argumentos, printenv imprime una lista de todas las variables de entorno, una variable por línea.

Por ejemplo, para ver el valor de la HOME, debe ejecutar:

printenv HOME

La salida imprimirá la ruta del usuario actualmente conectado:

/home/noviello

También puede pasar más de un argumento al comando printenv

printenv LANG PWD
C.UTF-8
 /home/noviello

Si ejecuta el printenv o env sin argumentos, se mostrará una lista de todas las variables de entorno:

printenv

La salida se verá así:

LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;.....
 HOSTTYPE=x86_64
 LESSCLOSE=/usr/bin/lesspipe %s %s
 LANG=C.UTF-8
 WSL_DISTRO_NAME=Ubuntu-18.04
 USER=noviello
 PWD=/home/noviello
 HOME=/home/noviello
 NAME=DESKTOP-8IISBA0
 XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
 SHELL=/bin/bash
 TERM=xterm-256color
 SHLVL=1
 LOGNAME=noviello
 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:........

Estas son algunas de las variables de entorno más comunes:

  • USER: el usuario que ha iniciado sesión actualmente.
  • HOME: el directorio de inicio del usuario actual.
  • EDITOR: el editor de archivos predeterminado para usar. Este es el editor que se utilizará al escribir edit en la terminal.
  • SHELL: la ruta al shell del usuario actual, como bash o zsh.
  • LOGNAME: el nombre del usuario actual.
  • PATH: una lista de directorios que se deben buscar al ejecutar comandos. Al ejecutar un comando, el sistema buscará esos directorios en este orden y usará el primer ejecutable encontrado.
  • LANG: la configuración regional actual.
  • TERM: la emulación de terminal actual.
  • MAIL: ubicación donde se almacena el correo del usuario actual.

Los printenv y env imprimen solo variables de entorno. Si desea obtener una lista de todas las variables, incluidas las variables y funciones de entorno, shell y shell, puede usar el comando set

set
BASH=/bin/bash
 BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath
 BASH_ALIASES=()
 BASH_ARGC=()
 BASH_ARGV=()

El comando mostrará una lista grande de todas las variables, por lo que es posible que desee redirigir la salida al comando less

set | less

También puede usar el echo para imprimir una variable de shell. Por ejemplo, para imprimir el valor de la BASH_VERSION, ejecutaría:

echo $BASH_VERSION
4.4.20(1)-release

Establecer las variables de entorno

Para ilustrar mejor la diferencia entre las variables Shell y Environment, comenzaremos configurando las variables Shell y luego pasaremos a las variables Environment.

Para crear una nueva variable de shell con el nombre MY_VAR y el valor es Noviello escriba:

MY_VAR='Noviello'

Puede verificar que la variable esté configurada usando el comando echo $MY_VAR

echo $MY_VAR
Noviello

Use el printenv para verificar si esta variable es una variable de entorno o no:

printenv MY_VAR

La salida estará vacía, lo que nos dice que la variable no es una variable de entorno.

También puede intentar imprimir la variable en un sub-shell y obtendrá una salida en blanco.

bash -c 'echo $MY_VAR'

El export se utiliza para establecer variables de entorno.

Para crear una variable de entorno, simplemente exporte la variable de shell como una variable de entorno:

export MY_VAR

Puede verificar esto ejecutando:

printenv MY_VAR
Noviello

Si intenta imprimir la variable en un sub-shell, esta vez obtendrá el nombre de la variable impreso en su terminal:

bash -c 'echo $MY_VAR'
Noviello

También puede establecer variables de entorno en una línea:

export MY_NEW_VAR="My New Var"

Las variables de entorno creadas de esta manera solo están disponibles en la sesión actual. Si abre un nuevo shell o sale, se perderán todas las variables.

Variables de entorno persistentes

Para que las variables de entorno sean persistentes, debe definir estas variables en los archivos de configuración de bash. En la mayoría de las distribuciones de Linux, al iniciar una nueva sesión, las variables de entorno se leen de los siguientes archivos:

/etc/environment: utilice este archivo para establecer variables de entorno para todo el sistema. Las variables de este archivo se establecen en el siguiente formato:

FOO=valore
 VAR_TEST="Valore uno"

/etc/profile: las variables establecidas en este archivo se cargan cada vez que se ingresa un shell de inicio de sesión de bash. Al declarar variables de entorno en este archivo, debe usar el comando de export

export JAVA_HOME="/path/to/java/home"
 export PATH=$PATH:$JAVA_HOME/bin

Por ejemplo, si está utilizando Bash, puede declarar las variables en el archivo ~/.bashrc

Abre el archivo:

nano ~/.bashrc

Pegue la siguiente línea de código al final del archivo:

export TEST_VAR="variabile di prova"

Guarde y cierre el archivo presionando CTRL + X, seguido de Y para guardar los cambios y luego ENTER si está usando nano.

Para cargar las nuevas variables de entorno en la sesión de shell actual, use el comando de source

source ~/.bashrc

Las variables de entorno creadas de esta manera también están disponibles en sesiones posteriores. Si abre un nuevo shell o sale, se guardarán todas las variables.

Conclusión

En esta guía, le mostramos cómo configurar y enumerar las variables de entorno y shell.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.