Open In App

Environment Variables in Linux/Unix

Last Updated : 19 Jul, 2024
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Share
Report
News Follow

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

screenshot-from-2018-12-17-21-2-1024x537-copy

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 typing printenv 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 value HelloWorld, 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:

  1. Open your profile file with a text editor, such as Nano:
  2. Add the export command at the end of the file:
  3. Save the file and exit the editor. For Nano, press CTRL+X to exit, press Y to save changes, and then Enter to confirm the filename.
  4. 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 the MY_VAR environment variable, you would use:

unset MY_VAR

This removes the variable from the environment, making it no longer accessible in the session.



Next Article
Article Tags :

Similar Reads

three90RightbarBannerImg