文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

解决 Linux 中的 “Bash: Command Not Found” 报错

2024-12-01 13:01

关注

当你在 Linux 中使用命令时,你希望得到终端输出的结果。但有时候,你会遇到终端显示“命令未找到command not found”这一报错。

对于这个问题,并没有直截了当且单一的解决方案。你必须自己做一些故障排除来解决这个报错。

老实说,要解决它并不难。该报错信息已经给出了一些提示:“命令未找到”,这说明你的 shell(或者 Linux 系统)找不到你输入的那条命令。

shell(或 Linux 系统)找不到命令,有三个可能的原因:

接下来,我们会详细介绍“命令未找到”这一报错的每一个原因。

解决“命令未找到”报错

方法 1:再次检查命令名称有没有写错

每个人都会犯错误,尤其是在打字的时候。你输入的命令可能存在错别字(也就是你写错啦)。

你应该特别注意:

看看下面的示例,因为我写错了 ​​ls​​ 命令,所以会导致“command not found”报错。

所以,请再次仔细确认你输入得对不对。

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

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

虽然在默认情况下,你的 Linux 发行版自带安装了大量命令,但是不会在系统中预装 所有的 命令行工具。如果你尝试运行的命令不是一个流行的常用命令,那么你需要先安装它。

你可以使用发行版的软件包管理器来安装命令。

You may have to install the missing command

有时候,某一常用命令可能也不再能使用了,甚至你也不能够安装这个命令了。这种情况下,你需要找到一个替代的命令,来得到结果。

以现已弃用的 ​​ifconfig​​ 命令为例。网络上的旧教程依旧会让你使用 ​​ifconfig​​ 命令,来 ​​获取本机的 IP 地址​​ 和网络接口信息,但是,在较新的 Linux 版本中,你已经无法使用 ​​ifconfig​​ 了。​​ifconfig​​ 命令已被 ​​ip​​ 命令所取代。

Some popular commands get discontinued over the time

有时候,你的系统可能甚至找不到一些非常常见的命令。当你在 Docker 容器中运行 Linux 发行版时,就通常如此。Docker 容器为了缩小操作系统镜像的大小,容器中通常不包含那些常见的 Linux 命令。

这就是为什么使用 Docker 的用户会碰到 ​​ping 命令未找到​​ 等报错的原因。

Docker containers often have only a few commands installed

因此,这种情况下的解决方案是安装缺失的命令,或者是找到一个与缺失命令有同等功能的工具。

方法 3:确保命令是真实的,而不是一个别名

我希望你知道 Linux 中的别名概念。你可以配置你自己的较短的命令来代替一个较长命令的输入。

一些发行版,如 Ubuntu,会自动提供 ​​ll​​(​​ls -l​​ 的别名)、​​la​​(​​ls -a​​ 的别名)等命令。

想象一下,你习惯于在你的个人系统上输入 ​​ll​​ 和 ​​la​​,而你登录到另一个 Linux 系统,发现 ​​ll​​ 命令并不存在。你甚至不能安装 ​​ll​​ 命令,因为它不是一个真正的命令。

所以,如果你找不到一个命令,甚至不能安装,你应该尝试在互联网上搜索该命令是否存在。如果不存在,可能是其他系统上的一个别名。

方法 4:检查命令是否是一个路径正确的可执行脚本

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

即使你在同一目录下,仅用可执行脚本的名称,来运行可执行脚本,也会显示错误。

[email protected]:~/scripts# sample-bash: sample: command not found

因为你需要显式指定 shell 解释器或可执行脚本的路径!

如果你在其他目录下,在未提供文件正确路径的情况下,运行 shell 脚本,则会有“找不到文件no such file or directory”的报错。

把可执行文件的路径加到 PATH 变量中

有时候,你下载了一个软件的压缩文件(tar 格式),解压这个 tar 文件,然后找到一个可执行文件和其他程序文件。你需要运行可执行文件,来运行那个软件。

但是,你需要在可执行文件的同一目录下或指定可执行文件的整个路径,才能运行那个可执行文件。这很令人烦扰。

你可以使用 ​​PATH​​ 变量来解决这个问题。​​PATH​​ 变量包含了有各种 Linux 命令的二进制(可执行)文件的目录集合。当你运行一个命令时,你的 Linux 系统会检查 ​​PATH​​ 变量中的上述目录,以查找该命令的可执行文件。

你可以使用 ​​which​​ 命令,来检查某一命令的二进制文件的位置:

如果你想从系统上的任何地方都能运行可执行文件或脚本,你需要将可执行文件的位置添加到 ​​PATH​​ 变量中。

然后,​​PATH​​ 变量需要添加到 shell 的 rc 文件中,如此对 ​​PATH​​ 变量的更改就是永久性的。

这里的要点是:你的 Linux 系统必须了解可执行脚本的位置。要么在运行时给出可执行文件的整个路径,要么将其位置添加到 ​​PATH​​ 变量中。

以上的内容有帮到你吗?

我懂得,当你是 Linux 新手时,很多事情可能会让你不知所措。但是,当你了解问题的根本原因时,你的知识会逐渐增加。

对于“未找到命令”报错来说,没有简单的解决方案。我提供给你了一些提示和要点,我希望这对你的故障排除有帮助。

来源:Linux中国内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯