myfreax

Bash: Command Not Found命令未找到

对Linux中的Bash: Command Not Found命令未找到进行故障排除,仔细检查命令名称,确保该命令已安装在您的系统上,检查是否是路径正确的可执行脚本,将命令其添加到PATH

6 min read
By myfreax
Bash: Command Not Found命令未找到

当您不熟悉Linux时,很多事情可能会让人不知所措。但是当您了解问题的根本原因时,它会逐渐提高您的知识。command not found命令未找到的错误通常没有直接的解决方案。这里给你一些提示和指示,这应该可以帮助你排除故障。

在本教程中我们将探讨bash: command not found命令未找到的原因以及解决方法。我们将以ipconfig命令为例说明错误的原因。并提出三种解决方法,包括:确定是否存在拼写错误,确保该命令已安装在您的系统上,使用apt,yum,dnf命令安装你需要的命令,检查可执行脚本路径是否正确,检查命令是否在PATH环境变量的路径中。

解决bash: command not found

在Linux中使用命令时,您希望看到输出。但有时,您会遇到终端打印command not found未找到命令”的错误。例如当你使用ipconfig命令时,终端的输出如下所示:

ipconfig
-bash: command not found: ipconfig

此错误没有简单的单一解决方案。您必须自己尝试解决这些错误。根据错误的提示分析原因。有时候错误提示也直接说明它原因。比如这个bash: command not found命令未找到,错误已经给出了提示。您的shell找不到您输入的命令。

发生bash: command not found命令未找到的错误,这有可能你的命令名称拼写错误,或者你没有安装,命令已经安装但不在你PATH环境变量的路径中。

确定是否存在拼写错误

人会犯错,特别是在打字时。您输入的命令可能有拼写错误。你应该首先确认自己是否拼写错误,接下来确定命令及其选项之间的空格,大写和小写字符的使用。这是一种最简单的方式。

确保该命令已安装在您的系统上

这是bash: command not found命令未找到错误,另一个常见原因。如果尚未安装,则无法运行命令。

虽然您的Linux发行版默认安装了大量命令,但不可能在系统中预安装所有命令行工具。如果您尝试运行的命令不是流行的常用命令,则必须使用发行版的包管理器来安装它apt命令dnf命令或者yum命令

在某些情况下,流行的命令可能会停止使用,您甚至可能不能再安装它。你必须找到一个可替代的命令。

ifconfig命令为例。这个不推荐使用的命令用于获取IP地址和其他网络接口信息。网络上较旧的教程仍然提到使用此命令,但您不能再在较新的Linux版本中使用它。它已被ip命令取代。

ipconfig
-bash: command not found: ipconfig

有时,您的系统甚至找不到极其常见的命令。当您在Docker容器中运行Linux发行版时,通常会出现这种情况。为了减少操作系统镜像的大小,容器通常甚至不包含最常见的Linux命令。这就是Docker用户偶然发现bash: command not found: ping命令未找到错误的原因。

因此,解决方案是要么安装缺少的命令,要么找到一个可替代的工具,该工具可以获得你所需要的结果即可。

检查可执行脚本路径是否正确

这是Linux新手在运行shell脚本时常犯的错误。即使您在同一目录中并尝试仅按其名称运行可执行脚本,它也会显示错误。

root@debian-test:~/scripts# sample
-bash: sample: command not found

您需要明确指定shell解释器或其绝对路径。

root@debian-test:~/scripts# ./sample
hello world

如果您在其他目录中并尝试执行shell脚本而不提供文件的正确路径,shell会提示command not found命令未找到。

检查命令是否在PATH环境变量的路径中

在某些情况下,您下载的软件是一个tar文件,将其解压缩并找到一个可执行文件以及运行程序所需的文件。你可以使用相对路径来启动这个程序。但当你使用cd命令切换其它目录时,需要执行此命令,你必须指定该程序的可执行文件整个路径。

在这里,您可以使用PATH环境变量。这个变量有一个目录集合,这些目录有各种Linux命令的二进制(可执行)文件。当您运行命令时,您的Linux系统的shell会检查PATH环境变量以查找该命令的可执行文件。

您可以使用以下which命令检查命令二进制文件的位置:

which zsh
##output
/usr/bin/zsh

which ping
##output
/usr/bin/ping

如果要从系统上的任何位置运行可执行文件或脚本,则需要将文件的位置添加到 PATH环境变量中。然后需要将PATH变量添加到shell的.bashrc或者.zshrc文件中。这样对PATH环境变量所做的更改是永久性的,即使重启后也不需要重新加入到PATH环境变量中。

也许你已经知道Linux如何找到你要运行的命令。当Linux系统shell执行你指定的命令时。你要么在运行时提供相对路径或者绝对路径,要么命令所在目录的位置添加到PATH环境变量中。

结论

当您不熟悉Linux时,事情可能会让人不知所措。但是当您了解问题的根本原因时,它会逐渐提高您的知识。command not found 命令未找到的错误通常没有直接的解决方案。这里给你一些提示和指示,这应该可以帮助你排除故障。