in mac always getting zsh: command not found:
Categories:
Troubleshooting 'zsh: command not found' on macOS

Learn to diagnose and resolve the common 'zsh: command not found' error on macOS, ensuring your shell can locate and execute commands.
The 'zsh: command not found' error is a common frustration for macOS users, especially after installing new software, updating their system, or migrating from Bash. This error indicates that your Zsh shell cannot locate the executable file for the command you're trying to run. This article will guide you through the typical causes of this issue and provide practical solutions to get your commands working again.
Understanding the PATH Environment Variable
At the heart of the 'command not found' error lies the PATH
environment variable. The PATH
is a list of directories that your shell searches through when you type a command. If the executable for your command isn't located in any of the directories listed in your PATH
, Zsh won't be able to find it, resulting in the error. Understanding and correctly configuring your PATH
is crucial for a functional command-line environment.
flowchart TD A[User types command] --> B{Is command an alias or built-in?} B -->|No| C{Check PATH variable} C --> D{Iterate through directories in PATH} D --> E{Is command executable found in current directory?} E -->|Yes| F[Execute command] E -->|No| G{More directories in PATH?} G -->|Yes| D G -->|No| H["zsh: command not found"] B -->|Yes| F
Flowchart illustrating how Zsh resolves commands using the PATH variable.
Common Causes and Solutions
Several factors can lead to a 'command not found' error. Identifying the root cause is the first step to resolving it. Here are the most common scenarios and their respective solutions.
~/.zshrc
or ~/.zprofile
) after making changes to environment variables to ensure they take effect.1. Command Not Installed or Incorrectly Installed
The most straightforward reason is that the command you're trying to run simply isn't installed on your system, or its installation was incomplete/corrupted. This often happens with new tools or when migrating to a new machine.
1. Verify Installation
Check the official documentation for the command or software to confirm its installation method and requirements. For Homebrew packages, you can use brew list <package_name>
.
2. Reinstall or Install
If it's not installed, follow the official instructions. If it was installed but isn't working, try reinstalling it. For Homebrew, use brew install <package_name>
or brew reinstall <package_name>
.
2. Incorrect PATH Configuration
Even if a command is installed, Zsh won't find it if its executable directory isn't included in your PATH
. This is a very common issue, especially when installing tools that don't automatically add themselves to the PATH
.
1. Inspect Your Current PATH
Open your terminal and type echo $PATH
. This will display the directories Zsh currently searches. Look for the directory where your missing command's executable should reside.
2. Locate the Command's Executable
If you know where the command is installed (e.g., /usr/local/bin
, /opt/homebrew/bin
), you can try to run it using its full path, like /usr/local/bin/mycommand
. If this works, you've found the executable.
3. Add Directory to PATH
Edit your ~/.zshrc
or ~/.zprofile
file (create it if it doesn't exist). Add a line like export PATH="/path/to/your/command:$PATH"
. Replace /path/to/your/command
with the actual directory. For example, export PATH="/usr/local/bin:$PATH"
.
4. Apply Changes
After saving the file, apply the changes by running source ~/.zshrc
(or source ~/.zprofile
) or by opening a new terminal window.
# Example of adding a directory to PATH in ~/.zshrc
export PATH="/opt/homebrew/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"
# To make sure changes are applied
source ~/.zshrc
Adding directories to your PATH in ~/.zshrc
.
3. Typo or Case Sensitivity
Sometimes, the simplest explanation is the correct one. A minor typo or incorrect casing can lead to the 'command not found' error, as Unix-like systems (including macOS) are case-sensitive.
1. Double-Check Command Spelling
Carefully review the command you typed for any spelling mistakes. Even a single character can make a difference.
2. Verify Case Sensitivity
Ensure you are using the correct casing for the command. For example, git
is different from Git
.
4. Corrupted Shell Configuration Files
Occasionally, a misconfigured or corrupted ~/.zshrc
or ~/.zprofile
file can interfere with your PATH
or other shell settings, leading to commands not being found.
1. Backup Configuration Files
Before making changes, always back up your existing configuration files: cp ~/.zshrc ~/.zshrc_backup
and cp ~/.zprofile ~/.zprofile_backup
.
2. Review for Errors
Open ~/.zshrc
and ~/.zprofile
in a text editor. Look for any syntax errors, incorrect export PATH
statements, or lines that might be unintentionally overriding your PATH
.
3. Test with a Clean Configuration
Temporarily rename your ~/.zshrc
to ~/.zshrc_old
and open a new terminal. If commands now work, the issue was in your configuration. You can then selectively reintroduce parts of your old ~/.zshrc
to find the problematic line.