Setting PATH environment variable in macOS permanently
Categories:
Permanently Setting the PATH Environment Variable in macOS

Learn how to correctly and permanently configure your PATH environment variable in macOS for command-line tools and applications, ensuring they are always accessible.
The PATH
environment variable is a crucial component of any Unix-like operating system, including macOS. It tells your shell where to look for executable programs when you type a command. Without a properly configured PATH
, you might find yourself unable to run installed tools or scripts directly from the terminal, leading to "command not found" errors. This article will guide you through the process of permanently setting your PATH
variable in macOS, covering different shell configurations and best practices.
Understanding the PATH Variable and Shells
Before diving into the how-to, it's important to understand what the PATH
variable does and which shell you are using. The PATH
is a colon-separated list of directories. When you execute a command, your shell searches these directories in order until it finds an executable file with that name. If it doesn't find it, you get an error.
macOS has historically used bash
as its default shell, but with macOS Catalina (10.15) and later, zsh
became the default. It's essential to know which shell you're using, as the configuration files differ.
flowchart TD A[User types command in Terminal] --> B{Is command an alias or built-in?} B -- No --> C{Check PATH environment variable} C --> D{Iterate through directories in PATH} D -- Found executable --> E[Execute program] D -- Not found in any directory --> F["command not found" error] B -- Yes --> E
How the shell resolves commands using the PATH variable
Identifying Your Current Shell
To determine your current shell, open your Terminal application and run the following command. The output will tell you whether you're using bash
, zsh
, or another shell.
echo $SHELL
Command to identify your current shell
Typical outputs will be /bin/bash
for Bash or /bin/zsh
for Zsh. Once you know your shell, you can proceed with the correct configuration method.
Configuring PATH for Zsh (macOS Catalina and later)
If echo $SHELL
returns /bin/zsh
, you should modify your ~/.zshrc
file. This file is executed every time a new Zsh shell session starts. If the file doesn't exist, you can create it.
1. Open or Create ~/.zshrc
Open your terminal and use a text editor like nano
or vim
to open or create the ~/.zshrc
file. For example, using nano
:
2. Add or Modify PATH
Inside the ~/.zshrc
file, add or modify the line that exports your PATH
. It's good practice to append your new path to the existing PATH
to ensure system directories are still searched first. Replace /path/to/your/new/directory
with the actual directory you want to add.
3. Save and Exit
If using nano
, press Ctrl+X
, then Y
to confirm saving, and Enter
to write to the file. If using vim
, press Esc
, then type :wq
and Enter
.
4. Apply Changes
For the changes to take effect in your current terminal session, you need to source the file. New terminal windows will automatically pick up the changes.
nano ~/.zshrc
Opening ~/.zshrc with nano
# Add this line to ~/.zshrc
export PATH="/path/to/your/new/directory:$PATH"
Example of adding a directory to PATH in ~/.zshrc
source ~/.zshrc
Applying changes to the current Zsh session
export PATH="/path/to/dir1:/path/to/dir2:$PATH"
.Configuring PATH for Bash (Older macOS versions or custom setup)
If echo $SHELL
returns /bin/bash
, you should modify your ~/.bash_profile
file. This file is executed when you open a new login shell. If you're using a non-login shell (e.g., opening a new tab in an existing terminal window), ~/.bashrc
might be used. For consistency, it's common to source ~/.bashrc
from ~/.bash_profile
.
If ~/.bash_profile
doesn't exist, create it. If ~/.bashrc
exists and you want to use it, ensure ~/.bash_profile
sources it.
1. Open or Create ~/.bash_profile
Open your terminal and use a text editor like nano
or vim
to open or create the ~/.bash_profile
file.
2. Add or Modify PATH
Add or modify the export PATH
line. Again, append your new path to the existing PATH
.
3. Save and Exit
Save the file and exit your text editor.
4. Apply Changes
Source the file to apply changes to your current session.
nano ~/.bash_profile
Opening ~/.bash_profile with nano
# Add this line to ~/.bash_profile
export PATH="/path/to/your/new/directory:$PATH"
Example of adding a directory to PATH in ~/.bash_profile
source ~/.bash_profile
Applying changes to the current Bash session
PATH
. Incorrect changes can make your system unstable or prevent essential commands from running. Always back up your configuration files before making significant changes.Verifying Your PATH Configuration
After making changes and sourcing your configuration file, it's crucial to verify that your PATH
has been updated correctly. You can do this by echoing the PATH
variable and checking if your new directory is included.
echo $PATH
Verifying the updated PATH variable
You should see your added directory listed in the output. To further confirm, try running a command that resides in your newly added directory. If it executes successfully, your PATH
is correctly configured.
~/.zshrc
or ~/.bash_profile
only affect new shell sessions or sessions where the file has been sourced.