Guía completa del comando env de Linux
Manual completo de comandos de Linux
env es una herramienta de línea de comandos muy útil en sistemas Linux/Unix, principalmente utilizada para mostrar y modificar variables de entorno, así como para ejecutar programas en un entorno personalizado.
Las variables de entorno son valores dinámicos establecidos por el sistema operativo o el usuario, que afectan el comportamiento de los procesos en ejecución. El comando env nos proporciona una forma conveniente de ver y manipular estas variables.
Analogía: podemos imaginar las variables de entorno como un tablón de anuncios en la oficina; todo el personal (programas) puede ver la información (variables de entorno) en él y ajustar su forma de trabajar según esa información.
Sintaxis básica del comando env
El formato de sintaxis básica del comando env es el siguiente:
env [OPTION]... [NAME=VALUE]... [COMMAND [ARG]...]
Si se ejecuta directamente sin ningún parámetroenv, mostrará todas las variables de entorno actuales y sus valores.
Opciones y parámetros comunes
El comando env admite las siguientes opciones comunes:
| Opción | Descripción |
|---|---|
-i, --ignore-environment |
Comenzar desde un entorno vacío, ignorando las variables de entorno heredadas |
-u, --unset=NAME |
Eliminar la variable especificada del entorno |
-C, --chdir=DIR |
Cambiar al directorio especificado antes de ejecutar el comando |
-S, --split-string=S |
Dividir los parámetros en múltiples parámetros |
--help |
Mostrar información de ayuda |
--version |
Mostrar información de versión |
Ejemplos de uso básico
1. Ver todas las variables de entorno
El uso más sencillo es escribir directamenteenvel comando:
Ejemplo
Esto mostrará todas las variables de entorno del shell actual, con el formatonombre de variable=valor, por ejemplo:
USER=john HOME=/home/john PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2. Ejecutar comandos en un entorno personalizado
Se pueden establecer variables de entorno temporalmente para ejecutar programas:
Ejemplo
En este ejemplo, establecemos temporalmenteLANG=Cy luego ejecutamos el comandols, lo cual afectarálsel idioma de salida del comando.
3. Crear un entorno limpio para ejecutar programas
Usando la-iopción se puede crear un entorno limpio (sin heredar ninguna variable de entorno existente):
Ejemplo
Aquí hemos creado un entorno limpio que solo tiene laPATHvariable para ejecutar ellscomando.
Uso avanzado
1. Modificar temporalmente variables para ejecutar scripts
Ejemplo
Este comando establecerá temporalmente laEDITORvariable de entorno ennano, y luego ejecutarácrontab -e, de esta manera se usará el editor nano para editar crontab.
2. Eliminar variables de entorno específicas
Ejemplo
Este comando, al ejecutarls, eliminará laHOMEvariable de entorno.
3. Uso combinado con shebang
env se usa frecuentemente en la línea shebang de los scripts para hacerlos más portables:
Ejemplo
Esta forma de escribir es más flexible que especificar directamente/bin/bash, porque busca la ubicación de bash en laPATHvariable de entorno.
Escenarios de aplicación práctica
1. Depurar problemas de variables de entorno
Cuando el comportamiento del programa es anormal, se puede usar env para verificar el entorno en el que se ejecuta:
Ejemplo
Esto permite descartar la interferencia de las variables de entorno y determinar si el problema es causado por ellas.
2. Ejecutar scripts no confiables de forma segura
Al ejecutar scripts de origen desconocido, se puede crear un entorno restringido:
Ejemplo
3. Probar el comportamiento del programa en diferentes configuraciones regionales
Ejemplo
env LANG=zh_CN.UTF-8 program
Esto permite probar el comportamiento del programa en diferentes entornos de idioma.
Notas
- Sobrescritura de variables: las variables establecidas mediante env sobrescribirán las variables de entorno existentes con el mismo nombre
- Impacto en subprocesos: las variables de entorno modificadas por env solo afectan a los subprocesos que inicia, no afectan al shell actual
- Seguridad: la información sensible (como contraseñas) no debe transmitirse a través de variables de entorno
- Orden de variables: las variables establecidas posteriormente sobrescribirán las variables del mismo nombre establecidas anteriormente