2 min read

Handling PATH Variables in Zsh (PowerShell $env:Path equivalent) on macOS Tahoe

Both Zsh (the default shell in macOS) and PowerShell (common in Windows) use the concept of a PATH environment variable to locate executable programs. This guide explains how to manage PATH in Zsh, drawing parallels with PowerShell for Windows users.

What is the PATH Variable?

The PATH variable is a list of directories where the shell looks for commands. When you type a command in the terminal (e.g., ls, git, python), the shell searches these directories in order until it finds an executable file with that name.

Viewing the PATH

Zsh (macOS)

echo $PATH

This prints the list of directories separated by colons (:).

PowerShell (Windows)

$env:Path

This prints the list of directories separated by semicolons (;).

Modifying the PATH

Zsh (macOS)

The recommended way to modify the PATH is by editing your .zshrc file.

  1. Open .zshrc in a text editor:

    nano ~/.zshrc
  2. Add or modify the export PATH line:

    export PATH="/new/directory:$PATH"

    This prepends /new/directory to the existing PATH. Remember to replace /new/directory with the actual path.

  3. Apply the changes:

    source ~/.zshrc

PowerShell (Windows)

You can modify the PATH for the current session:

$env:Path += ";C:\new\directory"

To make the change permanent, you need to modify the system environment variables in the Control Panel.

Best Practices

  • User-Specific Paths: Add user-specific paths to your shell profile (.zshrc) instead of system-wide environment variables.
  • Order Matters: The order of directories in your PATH is important. The shell searches directories from left to right.
  • Configuring the Zsh Profile and PATH on macOS Tahoe
  • Terminal Basics and Zsh Customization on macOS Tahoe