Commandes Linux: env

Un guide rapide de laenvcommande, utilisée pour exécuter des commandes et interagir avec les variables d'environnement

Leenvpeut être utilisée pour passer des variables d'environnement sans les définir sur l'environnement externe (le shell actuel).

Supposons que vous souhaitiez exécuter une application Node.js et définir leUSERvariable à elle.

Tu peux courir

env USER=flavio node app.js

et leUSERLa variable d'environnement sera accessible depuis l'application Node.js via le Nodeprocess.envinterface.

Vous pouvez également exécuter la commande en effaçant toutes les variables d'environnement déjà définies, en utilisant le-ioption:

env -i node app.js

Dans ce cas, vous obtiendrez une erreur disantenv: node: No such file or directoryparce que lenodecommande n'est pas accessible, car laPATHLa variable utilisée par le shell pour rechercher des commandes dans les chemins communs n'est pas définie.

Vous devez donc passer le chemin complet vers lenodeprogramme:

env -i /usr/local/bin/node app.js

Essayez avec un simpleapp.jsfichier avec ce contenu:

console.log(process.env.NAME)
console.log(process.env.PATH)

Vous verrez que la sortie est

undefined
undefined

You can pass an env variable:

env -i NAME=flavio node app.js

and the output will be

flavio
undefined

Removing the -i option will make PATH available again inside the program:

The env command can also be used to print out all the environment variables, if ran with no options:

env

it will return a list of the environment variables set, for example:

HOME=/Users/flavio
LOGNAME=flavio
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
PWD=/Users/flavio
SHELL=/usr/local/bin/fish

You can also make a variable inaccessible inside the program you run, using the -u option, for example this code removes the HOME variable from the command environment:

env -u HOME node app.js

The env command works on Linux, macOS, WSL, and anywhere you have a UNIX environment

Download my free Linux Commands Handbook


More cli tutorials: