Site icon DesignLinux

How to Set and List Environment Variables in Linux

How to Set and List Environment Variables in Linux

In Linux based systems you can set dynamic named values as environment variables. These values are stored within system and that are used by shells. An environment variable is a variable with a name and an associated value. In this article, we will show you how to set and use environment variables.

Environment and Shell Variables

The basic format for the variable are as following:

KEY="Some value"

There are two types of variables, Environment variable and Shell variable:

List Environment and Shell Variables

Following commands are available that allow you to list environment variables in Linux:

The printenv is mostly used to print the environment variables. If any argument is passed then it will print only value of the variable otherwise it will print a list of all environment variables.

For instance, to print the value of the USER environment variable, you would type:

printenv USER

It will show output as following:

tecnstuff

You can print multiple variables simultaneously separating by space:

printenv USER HOME
tecnstuff
/home/tecnstuff

If you run the printenv or env command without any argument then it will show a list of all the variables.

printenv
LESSCLOSE=/usr/bin/lesspipe %s %s
LANG=en_US
XDG_SESSION_ID=154
USER=tecnstuff
PWD=/home/tecnstuff
HOME=/home/tecnstuff
SSH_CLIENT=53.21.53.1 6366 22
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
SSH_TTY=/dev/pts/1
MAIL=/var/mail/tecnstuff
TERM=cygwin
SHELL=/bin/bash
SHLVL=1
LOGNAME=tecnstuff
XDG_RUNTIME_DIR=/run/user/1000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
LESSOPEN=| /usr/bin/lesspipe %s
_=/usr/bin/printenv

Following are some of the most common environment variables:

To get the list of all variables and shell functions you should use set command:

set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_COMPLETION_VERSINFO=([0]="2" [1]="8")
BASH_LINENO=()
BASH_SOURCE=()

The above command will show a large list in output so you can pipe the output to the less command:

set | less

Set Shell and Environment Variables

To create a new shell variable with name FIRST_VAR and set TecNStuff, you would type:

FIRST_VAR='TecNStuff'

Verify that variable is set using echo $FIRST_VAR or you can filter output using grep command:

echo $FIRST_VAR
TecNStuff

Now we will use printenv command to check whether the variable is environment or shell variable.

printenv FIRST_VAR

The output is blank, that means it’s not a environment variable.

Conclusion

In this article, we have shown you how to set and list environment and shell variables.

If you have any question or feedback, feel free to leave comment below.

Exit mobile version