Environment Variables in Linux/Unix
Environment variables, often referred to as ENVs, are dynamic values that wield significant influence over the behavior of programs and processes in the Linux operating system. These variables serve as a means to convey essential information to software and shape how they interact with the environment. Every Linux process is associated with a set of environment variables, which guide its behavior and interactions with other processes.
Table of Content
- Accessing Environment Variables
- Scope of an environment variable
- Global Environment Variables
- Local Environment Variables
- Displaying Environment Variables
- How to Set Environment Variables in Linux?
- To Set User-Wide Environment Variables in Linux
- To Set System-Wide Environment Variables in Linux
- How to unset environment variables?
- Some commonly used ENVs in Linux
Accessing Environment Variables
In Linux, the primary conduit for interacting with environment variables is the shell. The shell acts as a command-line interpreter, executing instructions entered by the user. The most prevalent shell in the Linux world is the Bash shell (Bourne Again SHell), which comes as the default in many Linux distributions.
Scope of an environment variable
Understanding the scope of an environment variable is crucial. It dictates where the variable can be accessed or defined, making a clear distinction between global and local scopes.
Global Environment Variables
A global environment variable, when defined in a terminal, enjoys accessibility from anywhere within that terminal’s environment. This means it can be employed by scripts, programs, or processes running within the scope of that terminal.
Local Environment Variables
On the other hand, local environment variables are confined to the specific terminal in which they are defined. They are isolated from external programs or processes, making their reach exclusive to the terminal that birthed them.
Accessing Environment Variables
Accessing environment variables is straightforward and consistent, regardless of their scope. To retrieve the value of an environment variable, the following syntax is employed:
Syntax
VARIABLE_NAME
This syntax is uniform for both local and global environment variables.
Displaying Environment Variables
To display the value of an environment variable, the echo
command is employed, as demonstrated below:
Syntax:
echo $VARIABLE_NAME
To obtain a list of all global environment variables, Linux offers several commands:
1. `printenv
` Command in Linux
This command provides a comprehensive list of all global environment variables.
printenv //displays all the global ENVs
2. `set`
Command in Linux
Lists all environment variables, encompassing both global and local variables.
set //display all the ENVs(global as well as local)
3. `env
` Command in Linux
Presents a list of global environment variables.
env //display all the global ENVs

How to Set Environment Variables in Linux?
Environment variables can be set using different approaches, depending on their intended scope.
1. Setting Global Environment Variables
Global environment variables can be defined using either the export
or set
command. Both methods involve specifying the variable’s name and value. For example:
$ export NAME=Value
or
$ set NAME=Value
Example:
2. Setting Local Environment Variables
Local environment variables can be directly defined without the need for export commands. The syntax is as follows:
Syntax:
$ NAME=Value
Example:
To Set User-Wide Environment Variables in Linux
User-wide environment variables are configured within user-specific files like `~/.bashrc`
, `~/.bash_profile`
, `~/.bash_login`
, or `~/.profile`
. These variables are personalized and persist across system restarts. The following steps guide the process of setting user-wide environment variables:
Following steps can be followed to do so:
Step 1: Open the terminal.
Step 2: Edit the user-specific file (e.g., ~/.bashrc
) using a text editor.
Step 3: Insert the variable in the file with the export
statement:
export NAME=Value
Step 4: Save and close the file.
Step 5: Activate the changes using:
$ source ~/.bashrc
Example:
To Set System-Wide Environment Variables in Linux
System-wide environment variables are configured in files such as `/etc/environment`
, `/etc/profile`
, `/etc/profile.d/`
, or `/etc/bash.bashrc`
. These variables are accessible to all users and remain persistent across system restarts. Setting a system-wide environment variable involves the following steps:
Following steps can be followed to do so:
Step 1: Open the terminal.
Step 2:
$ sudo -H vi /etc/environment
Step 3: Enter password.
Step 4: Add variable in the file opened.
NAME=Value
Step 5: Save and close the file.
Step 6: To apply the changes, log out and log in again
How to unset environment variables?
To unset an environment variable, the unset
command is used, or the variable can be assigned an empty value. For instance:
Syntax:
$ unset NAME
or
$ NAME=''
Example:
Permanent environment variables can be unset by editing the corresponding configuration files and removing the lines where they were initially defined.
Some commonly used ENVs in Linux
Environment Variables |
Description |
---|---|
$USER |
Gives search path for commands. |
$PATH |
Gives search path for commands. |
$HOME |
Gives path of home directory. |
$PWD |
Gives the path of present working directory. |
$HOSTNAME |
Gives name of the host. |
$LANG |
Gives the default system language. |
$EDITOR |
Gives default file editor. |
$UID |
Gives user ID of current user. |
$SHELL | Gives location of current user’s shell program. |
Example:
Conclusion
In this article we have discussed Environment Variable which are essential components of the Linux operating system., allowing processes and applications to access important configuration information. Overall, we can say it is important for a Linux User to understand the concepts of Environment Variable.
Environment Variables in Linux/Unix – FAQs
What are Environment Variables in Linux?
Environment variables in Linux are dynamic values that affect the processes or programs on a computer. They can store information such as the location of temporary files, the default editor to be used, system paths, or details about the session profile. They are particularly useful for maintaining settings that need to be accessed by various system programs or processes.
How to List All Environment Variables?
To see a list of all environment variables in your current session, you can use the
printenv
command. Simply typingprintenv
in your terminal and pressing Enter will display all environment variables:printenv
Alternatively, you can use the
env
command, which also lists all the environment variables:env
How to Set an Environment Variable?
To temporarily set an environment variable in Linux, you can use the export command in the shell. For example, if you want to set an environment variable named
MY_VAR
with the valueHelloWorld
, you would use:export MY_VAR=HelloWorld
This variable will remain set for the duration of the terminal session or until it is manually unset.
How to Permanently Set an Environment Variable?
To permanently set an environment variable, you need to add the export command to your profile script. The specific file depends on the shell you are using. For Bash, which is common, you might add the line to
~/.bashrc
,~/.bash_profile
, or~/.profile
. Here’s how you can do it:
- Open your profile file with a text editor, such as Nano:
- Add the export command at the end of the file:
- Save the file and exit the editor. For Nano, press
CTRL+X
to exit, pressY
to save changes, and thenEnter
to confirm the filename.- To make the changes effective, reload the file:
nano ~/.bashrc
export MY_VAR=HelloWorld
source ~/.bashrc
How to Delete an Environment Variable?
To delete or unset an environment variable in your current session, use the
unset
command followed by the name of the variable. For example, to delete theMY_VAR
environment variable, you would use:unset MY_VAR
This removes the variable from the environment, making it no longer accessible in the session.