env es un comando del sistema operativo Unix y los sistemas tipo Unix. Es usado para mostrar una lista de las variables de entorno y para ejecutar otro programa con las variables de entorno modificadas sin tener que modificar las variables de entorno del equipo. Usando el comando env se pueden añadir y eliminar variables, además de poder modificar el valor de las variables actuales.
En la práctica, el comando env a menudo es utilizado por los scripts del shell para lanzar el intérprete correcto. En este uso las variables de entorno no son modificadas.
env está estandarizado por POSIX, dentro de la Single Unix Specification.
El único parámetro definido por POSIX es -i; los demás son extensiones, comunes (como -u) o propias de GNU coreutils.
GNU coreutils añade además opciones para gestionar señales (--block-signal, --default-signal, --ignore-signal, --list-signal-handling). Un guion suelto (-) equivale a -i y es una forma histórica.
Para limpiar todas las variables del entorno (crear un nuevo entorno sin ninguna variable de entorno) para una nueva shell:
env -i /bin/sh
Para lanzar la aplicación X Window xcalc y hacer que aparezca en una pantalla diferente:
env DISPLAY=foo.bar:1.0 xcalc
Este es el código de un script en Python muy simple:
#!/usr/bin/env python3
print("Hello World.")
En este ejemplo, /usr/bin/env es la ruta completa del comando env. El entorno no se altera.