Environment Variables
Store and use configuration values in your shell environment
Overview
Environment variables are named values that the shell and the programs it launches can read. They configure behavior — like where to find executables (PATH) or which editor to use (EDITOR) — without hardcoding values into programs. Understanding them is key to configuring tools and writing portable scripts.
Syntax / Usage
Set variables, export them to child processes, and read them with $.
NAME="Stackademic" # a shell variable (this session only)
echo "$NAME" # read the value
export API_URL="https://api.example.com" # export to child processes
env # list all environment variables
echo "$PATH" # show the executable search path
printenv HOME # print a single variable
unset API_URL # remove a variable
Examples
Set a variable for a single command without exporting it globally:
NODE_ENV=production node server.js
Add a directory to your PATH so its programs are runnable:
export PATH="$HOME/bin:$PATH"
Read a configuration value inside a script:
echo "Deploying to $API_URL"
Common Mistakes
- Forgetting
export, so child processes can't see the variable - Putting spaces around
=, e.g.NAME = value, which the shell rejects - Not quoting
"$VAR", causing word-splitting when the value has spaces - Overwriting
PATHinstead of appending, which breaks common commands - Expecting variables set in one terminal session to persist to another
See Also
command-line-navigation command-line-shell-scripting