Environment Variables in Linux/Unix
Last Updated :
19 Jul, 2024
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.
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.
Similar Reads
Introduction to Linux Shell and Shell Scripting
If we are using any major operating system, we are indirectly interacting with the shell. While running Ubuntu, Linux Mint, or any other Linux distribution, we are interacting with the shell by using the terminal. In this article we will discuss Linux shells and shell scripting so before understandi
7 min read
Introduction to Shell Scripting
Basic Shell Commands in Linux
Basic Shell Commands in Linux: Complete List
Anyone using Linux should become an expert in the essential shell commands, as they form the backbone of working with the Linux terminal. These commands enable you to navigate the system, manage files, handle processes, and configure settings effectively. The Linux shell serves as an interface for u
5 min read
Linux Directory Structure
Prerequisite: Linux File Hierarchy Structure In Linux/Unix operating system everything is a file even directories are files, files are files, and devices like mouse, keyboard, printer, etc are also files. Here we are going to see the Directory Structure in Linux. Types of files in the Linux system.
5 min read
Input Output Redirection in Linux
In Linux, whenever an individual runs a command, it can take input, give output, or do both. Redirection helps us redirect these input and output functionalities to the files or folders we want, and we can use special commands or characters to do so. For example, if we run the "date" command, it giv
4 min read
Functions and Script Organization
Command-Line Arguments and Options
Error Handling and Debugging