Advanced Mac users that utilize the command line may occasionally encounter a “command not found” error message when attempting to run something in the command line. The “command not found” error in the Terminal can surface for several reasons in the command line of MacOS and Mac OS X, as we’ll discuss here, and of course we’ll offer solutions to these issues.
The three most common reasons why you may see the “command not found” message in the Mac command line are as follows:
- the command you are attempting to run is not installed
- the command was deleted, or, worse, the system directory was deleted or modified
- the users $PATH is incomplete, or $PATH has been erroneously set, reset, or cleared – this is the most common reason to see a ‘command not found’ message
Fortunately you can solve all of these issues and get the common working again as expected. We’ll start off with the most common reason, which is that the users $PATH is not set properly, or was reset somehow.
Fixing “Command Not Found” Terminal Messages in Mac OS with $PATH Setting
The most likely reason why Mac users may unexpectedly see the command not found message in the command line is something went awry with the users $PATH, or the path where the command is located is not set. You can check the $PATH with “echo $PATH” if you feel like it, otherwise you can just run the following commands to set the standard default path that Mac OS uses in the command line:
Hit return and run your command again, it should work fine.
By the way, even though we’re focusing on Mac OS here, this same idea applies to other unix and linux varieties as well.
Note if the intended command you’re attempting to use is located in a nonstandard directory or in another location (/usr/local/sbin/ etc), you can always add that new $PATH at the command line to specify where to look if needed.
Before, where the “command not found” message shows up running simple commands line ls and cd:
After, with those commands working successfully as expected:
How does this happen? Sometimes it can be running an incomplete or incorrect export $PATH command, a failure of adjusting environment variables, amongst other reasons.
You may need to refresh the command line shell for the change to take effect. If you relaunch the Terminal and get the “command not found” error again, then add the export $PATH commands to the users .bash_profile, .profile, or relevant shell profile if using an alternative shell in the Terminal app.
“Command not found” because command isn’t installed? Use HomeBrew
If the command just isn’t installed on the Mac, for common examples like wget, htop, or the many other useful unix commands available as Homebrew packages that are not otherwise preinstalled in Mac OS, then the simplest solution is to install and use Homebrew on the Mac to gain access to those command line utilities. Homebrew is a great tool anyway, so if you’re going to be spending time in the Terminal you’ll probably want it.
“Command not found” because a system directory is missing? Restore the missing system files
Every once in a while, Mac users may find themselves in a situation where they accidentally or inadvertently deleted system files from Mac OS. Usually this happens when someone is experimenting with the rm/srm commands and a wildcard, or maybe they became overly zealous with the Trash can when logged in as root. In any event, you can read here how to restore deleted or missing system files to Mac OS and Mac OS X – it usually involves restoring from a backup or reinstalling the system software itself.
Do you know of another reason why you may see the “command not found” error message in Mac OS Terminal? Maybe you have a better solution than what is offered above? Share with us in the comments below!