Linux/UNIX:找不到命令错误和解决方案
问题:
我该如何解决命令未找到的问题?
答:
当您收到错误消息 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变量中。