Environment variables are an important aspect of Linux system administration and provide engineers with a powerful tool for customizing systems. In this Linux tutorial, we'll take a closer look at what Linux environment variables are, how they differ from shell variables, and how you can list, set, and manage them.
What are environment variables in Linux?
Linux environment variables are dynamic variables used by a shell and its child processes. Environment variables define a variety of aspects of running a Linux system. For example, a user's default shell is defined in the SHELL variable. Similarly, many administrators use the JAVA_HOME= environment variable to direct programs to specific versions of Java on a system.
Some important points to remember when working with Linux environment variables are:
- Environment variables follow the format
=
- You can specify multiple values for a single variable by separating them with colons, like this: = =::
- Environment variables are case sensitive.
- By convention, but not a rule, i Environment variable names are always uppercase variables.
- Shell variables are not the same thing as environment variables. Shell variables apply only to the current shell, not to child processes. We'll look at this topic more closely in the Linux Shell Variables and Linux Environment Variables section.
Prerequisites
Our examples use Ubuntu 20.04 and GNU Bash 5.0.17, but you can follow along on most modern Linux systems. There are multiple methods for listing Linux environment variables here we will demonstrate some of the most common.
1. How to list Linux environment variables?
Now that we know what environment variables in Linux are, what they are used for, and have defined the prerequisites needed to set and list Linux environment variables, let’s look at ways to get you started.
Use printenv to List Linux Environment Variables
The printenv command displays the current environment variables.
You can use printenv to list all your current Linux environment variables by running the command without any options or parameters.
printenv
The output of should look similar to this:
SHELL=/bin/bash SUPERBREAKFAST=Pepper and Egg PWD=/root LOGNAME=root XDG_SESSION_TYPE=tty MOTD_SHOWN=pam HOME=/root LANG=C.UTF-8 LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36: SSH_CONNECTION=24.148.23.154 2068 84.32.188.154 22 EASTEREGG=You pay attention to detail, good job! LESSCLOSE=/usr/bin/lesspipe %s %s XDG_SESSION_CLASS=user TERM=xterm LESSOPEN=| /usr/bin/lesspipe %s USER=root SHLVL=1 XDG_SESSION_ID=839 XDG_RUNTIME_DIR=/run/user/0 SSH_CLIENT=24.148.23.154 2068 22 XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/0/bus SSH_TTY=/dev/pts/0 _=/usr/bin/printenv
You can also use printenv to display individual environment variables. The basic syntax to display a single Linux environment variable using printenv is: printenv [name]
For example, to print the PWD environment variable, use this command:
printenv PWD
Read Also : How do I become a team leader in a software company?
No comments