¿Cómo configuro una variable de entorno en ZSH?

¿Cómo configuro una variable de entorno en ZSH?

Si alguna vez ha usado el terminal de Linux, probablemente conozca las variables de entorno. Las variables de entorno se refieren a un conjunto de nombres de variables dinámicas que almacenan un valor que las aplicaciones del shell de Linux pueden usar.

Las variables de entorno vienen como pares de valor clave donde la clave representa el nombre de la variable y un valor. Puede personalizar los valores de las variables de entorno, con los cambios reflejados a nivel mundial en todas las aplicaciones lanzadas desde el shell.

Esta guía discutirá cómo interactuar con variables de entorno, lectura y configuración de variables de entorno utilizando el shell ZSH.

Cómo funcionan las variables de entorno

Tomemos un momento para comprender cómo funcionan las variables del entorno.

En Linux y otros sistemas basados ​​en UNIX, cada vez que lanzamos una nueva sesión de shell, inicializa un proceso para recopilar la información que debería estar disponible dentro de esa sesión de shell y todos sus procesos infantiles. Dicha información se recopila a partir de archivos de configuración como .ZSHRC, .Zlogin, etc.

El propósito de las variables de entorno es proporcionar un medio simple donde la carcasa puede obtener o establecer configuraciones relacionadas con el sistema.

Las variables de entorno toman el siguiente formato:

Clave = valor
Clave = valor1: valor2

Si la variable de entorno contiene múltiples valores, cada valor está separado por un colon (:). Un ejemplo famoso de tal variable de entorno es la ruta $.

Del mismo modo, si el valor de la variable de entorno contiene espacios, el valor está encerrado en un par de comillas como:

Key = "Valor con espacios"

Las variables de entorno son sensibles a los casos. Se recomienda usar nombres mayúsculas para variables de entorno para distinguirlos dentro de otros contextos.

No debe incluir espacios alrededor del signo igual (=).

Hay dos tipos principales de variables:

  1. Variables de entorno
  2. Variables de concha.

Variables de entorno

Las variables de entorno son variables globales heredadas por todos los proyectiles y sus procesos infantiles correspondientes.

Variables de concha

Por otro lado, las variables de la carcasa están disponibles dentro de la carcasa en la que están definidas o establecidas. Se usan comúnmente para almacenar datos temporales y se destruyen automáticamente una vez que se termina la sesión de shell.

Cada caparazón, como Bash, Zsh, Fish y otros, contienen su propio conjunto de variables de concha.

Cómo imprimir variables de entorno

Varias conchas de Linux realizan un seguimiento de sus variables predefinidas de carcasa y entorno. Podemos ver estas variables usando varios comandos.

El comando más común para ver las variables de entorno es el comando printenv. Si ejecuta este comando sin argumentos, imprime todas las variables de entorno como se muestra en el siguiente ejemplo:

printenv

El comando anterior debe imprimir todas las variables de entorno como se muestra:

Shell =/bin/zsh
Session_manager = local/Debian10.Local:@/tmp/.HIELO-
Unix/964, Unix/Debian10.Local:/TMP/.Ice-unix/964
Qt_accessibility = 1
Colorterm = trueColor
Xdg_menu_prefix = gnome-
Gnome_desktop_session_id = this-is-se-depreded
Ssh_auth_sock =/run/user/1000/keyring/ssh
Desktop_session = gnome
Gtk_modules = gail: puente atk
Xdg_seat = asiento0
Pwd =/home/Debian
Xdg_session_desktop = gnome
LogName = Debian
Xdg_session_type = Wayland
GJS_DEBUG_TOPICS = JS Error; js log
Gdm_lang = en_us.UTF-8
Inicio =/Inicio/Debian
Nombre de usuario = Debian
---------Salida truncada-------------------------------------

Usando el comando printenv, puede imprimir una variable individual pasando como argumento. Por ejemplo, para mostrar el valor de la ruta $, puede usar el comando:

ruta de impresión

El comando debe devolver el valor de la variable de ruta como:

/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

También puede pasar varias variables al comando Printenv como:

$ Printenv Path Home Nombre de usuario
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
/Inicio/Debian
debian

El comando debe imprimir los valores de las variables de entorno pasadas cada una en una línea.

CONSEJO: También puede usar el comando Env para imprimir o establecer los valores de las variables de entorno.

Variables de entorno populares

Las siguientes son algunas variables de entorno estándar.

  • HOGAR - Representa el directorio de inicio para el usuario actual.
  • CAPARAZÓN - Muestra la ruta del shell del usuario actual.
  • USUARIO - Muestra al usuario iniciado actualmente.
  • CAMINO - Contiene una lista de directorios que se buscarán los archivos ejecutables cuando se ejecuta un comando.
  • Lang - Muestra la configuración de la localidad, incluida la codificación de personajes
  • TÉRMINO - Se refiere a la emulación terminal actual.
  • _ - Muestra el comando ejecutado previamente para ese usuario.

Cómo imprimir variables de shell

Tanto los comandos PrintenV como Env y Mostrarán las variables de entorno. Use el comando SET para ver todas las variables, incluidas las variables, funciones y variables de entorno locales de shell y locales.

Si ejecuta el comando SET sin ningún parámetros, imprimirá todas las variables como:

colocar

Aquí hay una salida de ejemplo:

'!'= 0
'#' = 0
'$' = 2801
'*' = ()
-= 569jnrxzghiklms
0 = ZSH
'?'= 0
@= ()
Argc = 0
BG
CDPATH = "
Colorterm = trueColor
Columnas = 211
Cputype = x86_64
Dbus_session_bus_address = 'unix: path =/run/user/1000/bus'
Desktop_session = gnome
Display =: 0
EGID = 1000
Epochrealtime
Propietarios
EUID = 1000
FG
Fignore = "
Fpath =/home/debian/.Oh-My-Zsh/Plugins/Git:/Home/Debian/.Oh mi-
ZSH/Funciones:/Home/Debian/.oh-my-zsh/finalizaciones
---Salida truncada----------------------------------------

Los valores impresos desde el comando set son típicamente una lista masiva de elementos que puede filtrar si tuve la salida a comandos como Grep.

Variables de concha populares

Aunque las variables de la carcasa variarán según el caparazón que esté utilizando; Los siguientes son comunes en la carcasa ZSH.

  • Zsh_version - La versión del shell ZSH que se está ejecutando.
  • INMEDIATO - Muestra a los marcadores de posición para el formato de inmediato de ZSH actual. Similar a $ PS1.
  • Hacer historias - Número de comandos de historia almacenados en la memoria.
  • Histórico - ruta al archivo de historial de comandos ZSH.
  • ZSH_NAME - Nombre de shell Zsh.
  • Uid - Uid del usuario actual.
  • IFS - Almacena el valor del separador de campo interno.

Cómo establecer variables de entorno en ZSH

Para establecer variables de entorno, utilizamos el comando de exportación. La sintaxis es:

exportación clave = valor

Por ejemplo, para crear una variable http_proxy y establecerla en una URL, podemos hacer:

Exportar http_proxy = "http: // 127.0.0.1: 8080 "

Para verificar la creación de la variable, podemos usar el comando Printenv como:

printenv http_proxy
http: // 127.0.0.1: 8080

Una vez que establece una variable de entorno, puede acceder a ella desde todos los procesos infantiles. Por ejemplo:

zsh -c 'echo $ http_proxy'

Sin embargo, las variables de entorno creadas en el método discutido anteriormente solo están disponibles dentro de la sesión de shell actual. Una vez cerrado, todas las variables de entorno se destruyen.

Cómo crear variables de entorno permanente

Si desea crear una variable de entorno que pueda persistir en las sesiones de shell, puede usar los archivos de configuración de shell.

En ZSH, puede definir las variables de entorno en el .archivo zshrc.

Del mismo modo, debe usar el comando de exportación como:

vim ~/.ZSHRC
Exportar http_proxy- "http: // 127.0.0.1: 8080 "

Cierra y guarda el archivo.

Para cargar las variables de entorno en la sesión de shell actual, use el comando de origen como:

fuente ~/.ZSHRC

Conclusión

En esta guía, discutimos cómo trabajar con las variables de entorno y shell en los sistemas Linux. También aprendimos a establecer variables de entorno y aplicar la persistencia en las sesiones de shell.

Gracias por leer.