• Home
  • Linux
  • Ubuntu
  • Debian
  • CentOS
  • Linux Commands
  • About Us
  • Donate
TecNStuff
Menu
  • Home
  • Linux
  • Ubuntu
  • Debian
  • CentOS
  • Linux Commands
  • About Us
  • Donate

How to Set and List Environment Variables in Linux

Written by Admin, Updated On December 10, 2022
terminal
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"
  • Environment variables names should in UPPER CASE. Remember that the names of the variables are case-sensitive.
  • To assign multiple values you should use : colon as separator.
  • There should not have space before or after the = equal sign

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

  • Environment variables are variables those are available system-wide and are inherited by all spawned child processes and shells.
  • Shell variables are variables that apply only to the current shell instance. Each shell such as zsh and bash, has its own set of internal shell variables.

List Environment and Shell Variables#

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

  • env – This command allows you to run another program in a custom environment without modifying the current one. It will print a list of the current environment variables when used without an argument.
  • printenv – The command prints the specified environment or all variables.
  • set – It will set or unset shell variables. It will list all the variables including environment and shell variables, when used without an argument.
  • unset – Used to delete shell and environment variables.
  • export – The command sets environment variables.

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:

  • USER – It will show the current logged in user.
  • HOME – It’s home directory of the current user.
  • EDITOR – It will show name of default file editor.
  • SHELL – Display the path of the current user’s shell, such as bash or zsh.
  • LOGNAME – The name of the current user.
  • PATH – It is a list of directories. When you run a command the system will search those directories in this order and use the first found executable.
  • LANG – The current locales settings.
  • TERM – The current terminal emulation.
  • MAIL – It displays the location of the current user’s mail storage.

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.

If our content helps you, please consider buying us a coffee

Thank you for your support.

Share On
Share on Facebook
Share on Twitter
Share on Reddit
Share on Tumblr
 Previous Article How to Install Tomcat 9 on Ubuntu 20.04
Next Article   How to Install Xrdp Server (Remote Desktop) on CentOS 8

Related Posts

  • How to Install SSH Keys on Ubuntu 22.04

    How to Set up SSH Keys on Ubuntu 22.04

    January 7, 2023
  • How to Install Fail2ban on Ubuntu 22.04

    How to Install and Configure Fail2ban on Ubuntu 22.04

    December 5, 2022
  • How to Enable SSH on Ubuntu 22.04

    How to Enable SSH on Ubuntu 22.04

    December 1, 2022

Leave a Reply Cancel reply

DigitalOcean Referral Badge

Popular Posts

© 2020 TecNStuff All rights reserved. This website is using and storing cookies on your browser. By using this website you agree our Privacy Policy.  Follow us -  Twitter | Facebook