Linux/UNIX:找不到命令错误和解决方案

时间:2020-01-09 10:42:10  来源:igfitidea点击:

问题:
我该如何解决命令未找到的问题?

答:
当您收到错误消息 Command not found"找不到命令"时,这意味着Linux或者UNIX在它知道要查找的地方都搜索了命令,并且找不到该名称的程序。
另一个原因是您拼错了命令名称(typo),或者管理员根本没有在基于Linux/UNIX的系统上安装该命令。
要解决此错误,请尝试以下建议:

确保命令没有拼写错误

所有Linux和UNIX命令均区分大小写,您需要输入正确的命令拼写。

确保命令是您的路径

您可以使用以下命令查看当前搜索路径:

$ echo $PATH

输出示例:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/home/Hymangite/bin

通常,所有用户命令都在/bin和/usr/bin或者/usr/local/bin目录中。
您的所有程序都安装在这些目录中。
当您执行clear命令时,您正在运行/usr/bin/clear。
因此,如果它不在您的路径中,请尝试按以下方式将目录添加到您的搜索路径(使用以下bash export命令设置Linux或者UNIX搜索路径):

$ export PATH=$PATH:/bin:/usr/local/bin

您还可以找到任何使用where或者whereis命令的命令的路径:

$ which ls

/bin/ls

$ which gcc

/usr/bin/gcc

$ which date

/bin /日期

$ which cal

/usr/bin/cal

$ whereis gcc

/usr/bin/gcc

您可以使用其完整路径名运行程序,如下所示:

$ /bin/ls
$ /bin/date

最后,有时您可能没有运行该命令的权限。

例子

假设您要执行的程序称为cal,并且您从Unix或者Linux收到一条Command not found消息。
首先,执行以下命令以查看是否获得路径名:

$ whereis cal

输出示例:

cal: /usr/bin/cal /usr/share/man/man1/cal.1.gz

如果这样做,则可以使用完整路径名(例如/usr/bin/cal)来调用它:

$ /usr/bin/cal

输出示例:

September 2012
Su Mo Tu We Th Fr Sa
                   1
2  3  4  5  6  7  8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

或者,您可以在shell启动文件" $HOME/.cshrc"(csh/tcsh)或者" $HOME/.bashrc"(bash)文件中将路径添加到PATH变量,然后获取文件:

$ vi $HOME/.bashrc

添加路径,如下所示:

PATH=$PATH:/home/Hyman/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
export PATH

保存并关闭文件。
运行以下命令:

$ source ~/.bashrc
$ echo $PATH
$ cal

最后,您可以使用以下命令搜索cal命令以获取有关其位置的提示。

$ find / -name cal -print

然后,使用完整路径名调用它,或者将其添加到Shell启动文件中的PATH变量中。