在 Linux 中使用命令时,您希望看到输出。但有时,您会遇到终端显示“未找到命令”错误的问题。

ipconfig
-bash: command not found: ipconfig

此错误没有简单的单一解决方案。您必须自己进行一些故障排除。

这不是太难,老实说。当它说“bash: command not found”时,错误已经给出了一些提示。您的 shell(或 Linux 系统)找不到您输入的命令。

找不到命令的原因可能有以下三种:

  • 这是一个命令名称拼写错误
  • 该命令甚至没有安装
  • 该命令基本上是一个可执行脚本,其位置未知

让我们详细了解每个可能的根本原因。

修复“bash:找不到命令”错误

方法 1:仔细检查命令名称

人会犯错,特别是在打字时。您输入的命令可能有拼写错误(拼写错误)。

你应该特别注意:

  • 正确的命令名称
  • 命令及其选项之间的空格
  • 1(数字一)、I(大写i)和l(小写L)的使用
  • 大写和小写字符的使用

因此,请仔细确定您正在输入的内容。

方法 2:确保该命令已安装在您的系统上

这是命令未找到错误背后的另一个常见原因。如果尚未安装,则无法运行命令。

虽然您的 Linux 发行版默认安装了大量命令,但不可能在系统中预安装所有命令行工具。如果您尝试运行的命令不是流行的常用命令,则必须先安装它。

您可以使用发行版的包管理器来安装它比如apt或者dnf

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

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

ipconfig
-bash: command not found: ipconfig

有时,您的系统甚至找不到极其常见的命令。当您在Docker容器中运行 Linux 发行版时,通常会出现这种情况。为了减少操作系统镜像的大小,容器通常甚至不包含最常见的 Linux 命令。

这就是Docker用户偶然发现ping命令未找到错误等问题的原因。

因此,解决方案是要么安装缺少的命令,要么找到一个工具,该工具可以执行您尝试使用缺少的命令执行的相同操作。

方法三:检查是否是路径正确的可执行脚本

这是Linux新手在运行 shell 脚本时常犯的错误。

即使您在同一目录中并尝试仅按其名称运行可执行脚本,它也会显示错误。

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

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

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

如果您在其他目录中并尝试执行 shell 脚本而不提供文件的正确路径,它会抱怨找不到文件。

将其添加到PATH

在某些情况下,您将整个软件下载到一个tar文件中,将其解压缩并找到一个可执行文件以及其他程序文件。要运行该程序,您需要运行可执行文件。

为此,您需要在同一目录中或指定可执行文件的整个路径。这很烦。

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

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

which zsh
##output
/usr/bin/zsh

which ping
##output
/usr/bin/ping

如果要从系统上的任何位置运行可执行文件或脚本,则需要将文件的位置添加到此 PATH变量中。

然后需要将 PATH 变量添加到shell的.bashrc文件中,以便对PATH变量所做的更改是永久性的。

您可以在这里了解要点。重要的是您的 Linux 系统了解可执行脚本的位置。要么在运行时提供路径,要么将其位置添加到 PATH 变量中。

对你有帮助吗?

我知道当您不熟悉 Linux 时,事情可能会让人不知所措。但是当您了解问题的根本原因时,它会逐渐提高您的知识。

在这里,“找不到命令错误”没有直接的解决方案。我给了你一些提示和指示,这应该可以帮助你排除故障。