Our environment is the area that the shell builds every time a new session is started. Programs are able to access our environment variables to their tailor functions according to a user's settings.
For example, a program can access where your TEMP folder is through the environment variable TMPDIR.
There are two types of variables stored - environment and shell. Let's discuss the environment variables first.
Environment variables are the variables that define the current shell session, and any child shells or processes that spawn from it.
We can see the environment variables with the
$ printenv TERM_PROGRAM=iTerm.app SHELL=/bin/bash TERM=xterm-256color USER=JohnDoe MAIL=/var/mail/JohnDoe PATH=/usr/local/bin:/usr/bin:/bin PWD=/home/JohnDoe LANG=en_US.UTF-8 SHLVL=1 HOME=/home/JohnDoe LOGNAME=JohnDoe LESSOPEN=| /usr/bin/lesspipe %s LESSCLOSE=/usr/bin/lesspipe %s %s _=/usr/bin/printenv
You'll find quite a few variables. You can also list just one variable by typing the variable name as an argument to
$ printenv USER JohnDoe
Here's just some of the most common environment variables.
In addition to the
printenv command is
env. These two commands are very similar, except
printenv can request values of individual variables, while
env lets you pass variables through to a command.
env variable is useful when you want to create child processes with an alternate variable. The
-c option here allows you to pass in a command as a string.
$ env VAR="HelloWorld" bash -c 'command'
Shell variables are useful for keeping values in scripts, and control the way the shell behaves. To see the shell variables use the
set command. This displays the shell variables, environmental variables, local variables and shell functions.
$ set ... DIRSTACK=() EUID=501 GROUPS=() HISTFILE=/Users/shawnPC/.bash_history HISTFILESIZE=500 HISTSIZE=500 HOME=/Users/shawnPC HOSTNAME=Shawns-Mac-Pro HOSTTYPE=x86_64 IFS=$' \t\n' ITERM_PROFILE=Default ITERM_SESSION_ID=w0t0p0 ...
Since this will have many more variables, consider piping the listing to the
Here are some common shell variables:
The Linux Command Line takes you from your very first terminal keystrokes to writing full programs in Bash, the most popular Linux shell. Along the way you'll learn the timeless skills handed down by generations of gray-bearded, mouse-shunning gurus: file navigation, environment configuration, command chaining, pattern matching with regular expressions, and more.$ Check price
Relieve your stress, back, neck and sciatic pain through 1,782 acupuncture points for immediate neck pain relief. Made for lower, upper and mid chronic back pain treatment, and improves circulation, sleep, digestion and quality of life.$$ Check price