Home > Package & System Management > env

env Command Guide: Viewing and Setting Environment Variables

The `env` command is used to print a list of environment variables for the current shell or to run another command with specific environment variables set. It's useful for controlling the environment in shell scripts or temporarily changing the environment when running a program. Learn various ways to use the `env` command with this guide.

env Overview

Environment Variables are dynamic 'name=value' pairs that contain information needed for the operating system to function. Programs refer to these variables when they run to determine their behavior, paths, and more. The `env` command is used to manage these environment variables.

The Importance of Environment Variables

Environment variables provide information about the environment in which a program is running, allowing the program to operate flexibly. For example, the `PATH` variable defines a list of directories to search for executable commands, and the `HOME` variable stores the path to the user's home directory.

Key Roles of env

  • View Environment Variables: Outputs all environment variables currently set in the shell.
  • Set Execution Environment for a Command: Runs a specific command with temporary additions or changes to environment variables. This does not affect the existing shell environment.
  • Script Debugging: Can be used to check the state of environment variables during script execution or to prevent a script from running in an unexpected environment.

Key env Command Options

The `env` command is primarily used without options or when setting variables and running a command. There are a few useful options available.

1. Basic Usage

2. Specific Environment Control Options

Generated command:

Try combining the commands.

Description:

`env` Executes the command.

Combine the above options to virtually execute commands with AI.

Usage Examples

Explore various examples of the `env` command to learn how to effectively manage environment variables and run commands in a specific environment.

Output all current environment variables

env

Checks the list of all environment variables in the current logged-in shell.

Set a specific environment variable and run a command

env MY_TEST_VAR="hello" echo $MY_TEST_VAR

Sets the environment variable `MY_TEST_VAR` to `hello` and then runs the `echo $MY_TEST_VAR` command. The variable disappears after the `echo` command finishes.

Run a program with a new environment variable

env DEBUG_MODE=true my_program

Sets the `DEBUG_MODE` environment variable to `true` and runs `my_program`. `my_program` can refer to this variable to operate in debug mode.

Run a command without the PATH variable (security test)

env -u PATH /bin/ls

Ignores the existing `PATH` environment variable and runs the `/bin/ls` command. This shows that the `ls` command can be executed by specifying its direct path, even if it's not in `PATH`.

Run a script in an empty environment

env -i bash my_script.sh

Ignores all existing environment variables and runs the `my_script.sh` script in a completely clean environment. This is useful for testing if the script relies on unexpected environment variables.

Add a new path to PATH and run a command

env PATH=$PATH:/usr/local/python/bin python my_script.py

Adds a new path to the existing `PATH` and then runs the `python` command. This can be useful when you need to use a specific version of Python.


Same category commands