If you’re a Linux user, you’ve probably seen the “command not found” error on the Linux terminal. When you encounter this error, you are often advised to install a program; however, there are various probable explanations for the “command not found” error.
Understanding Environment Variables And Case Sensitivity
Before we begin addressing common reasons for the error, it is crucial to understand a few key characteristics of Linux commands. First, unlike Windows, Linux, and Unix systems, all commands, filenames, and directories are case-sensitive. This implies that all commands and their related arguments or options should appear precisely as intended. In addition, of course, the majority of commands are in lowercase.
In Linux, environment variables are crucial. These include useful information about your login experience and other pertinent information. With Linux, when you run a command, your system will look in your current variables, notably the PATH variable, to find the command or program you wish to run. If the command is not found, you will get an error message. With this understanding, let’s troubleshoot the “command not found” error on Linux.
Check For Syntax Errors
All Linux commands should be run precisely as they appear in the case-sensitive list. With Linux, for instance, the shell recognizes “ls” and “LS” as distinct commands. Likewise, if your command involves arguments, use the right case. So, for example, the ssh command for port forwarding looks like this.
ssh -fN -L 80:localhost:8080
In this situation, the “L” and “N” arguments must be uppercase; otherwise, an error would occur. In certain circumstances, a preceding hyphen (-) or double hyphen (–) is required, and some arguments must be contained in quotes or brackets. Verify that you are using the right command. Double-check the spelling of the command you’re attempting to use and ensure you use the right case.
Include Path To Executable
Scripts are important in Linux because they enable you to automate mundane tasks. However, whether you build your Bash program or use one of the many third-party programs, you must provide the whole path to the program to execute it effectively.
For example, when you download the Open Virtualization Format Tool, you may install it in any directory you like. However, you will now get the “command not found” error when attempting to run the ovftool command from a directory other than the one it was installed in.
To run the command correctly, you must give the whole path to the program executable. To run ovftool, for example, if you installed it in the /opt/ovf directory, use the following command.
sudo /opt/ovf/ovftool
Pay close care to the lashes as well. In contrast to Windows, which uses backward slashes, Linux employs forward slashes. To prevent mistakes in directory names, use the Tab auto-completion function of your terminal.
Use Environment Variables
Think about adding the program executable to your PATH environment variable if you find that supplying a full directory to a command is tedious. For example, run a command in the following format to add a program executable to PATH.
PATH = $PATH:/opt/path/to/your/program
Run the following command, for instance, to add the Microsoft .NET tools program to your PATH.
export PATH=$PATH:~/.dotnet/tools
The Environment variables are written to the ~/.bashrc file in Bash and the ~/.zshrc file in Z shell. Run the source command to update and apply your modifications to the ~/.bashrc file without logging out.
source ~/.bashrc
You may use the command to check whether your program path was correctly added to the PATH variable.
echo $PATH
Ensure That Program Is Installed
Sometimes the “command not install” error is caused simply by the program not being installed in the first place. For example, if the command you are attempting to run is not a built-in shell command, the program may not be installed on your system. In this scenario, you must install the program or the package that includes it. Use your distro’s default package manager to install the essential packages. For example, use the apt command on Debian-based distros and DNF or YUM on RHEL-based distros.
Use Correct Privileges
If you are positive that the program or command you are attempting to run is on your system and that you are using the right syntax, then it may be a permissions problem. You’ll require elevated rights to execute specific programs in Linux, much as on Windows. If this is the case, use sudo or run the program as the root user.
Conclusion:
Make sure you use the right syntax when running Linux commands, and consider adding programs you often run to your environment variables. Understanding environment variables is critical for your day-to-day usage of the operating system in Linux since they play such a significant role.