Redian新闻
>
解决 Linux 中的 “Bash: Command Not Found” 报错 | Linux 中国

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

科技
 
导读:本新手教程展示了在 Debian、Ubuntu 和其他的 Linux 发行版上如何解决 “Bash: command not found” 这一报错。
本文字数:2900,阅读时长大约:4分钟

本新手教程展示了在 Debian、Ubuntu 和其他的 Linux 发行版上如何解决 “Bash: command not found” 这一报错。

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

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

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

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

◈ 你将命令的名称拼错了
◈ 该命令还没有安装
◈ 该命令是一个可执行脚本,但其位置未知

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

解决“命令未找到”报错

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

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

你应该特别注意:

◈ 是否拼对了正确的命令名称
◈ 是否在命令与其选项之间加上了空格
◈ 是否在拼写中混淆了 1(数字 1)、I(大写的 i)和 l(小写的 L)
◈ 是否正确使用了大写字母或者小写字母

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

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

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

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

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

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

You may have to install the missing command

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

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

Some popular commands get discontinued over the time

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

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

Docker containers often have only a few commands installed

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

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

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

一些发行版,如 Ubuntu,会自动提供 llls -l 的别名)、lals -a 的别名)等命令。

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

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

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

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

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

  1. [email protected]:~/scripts# sample
  2. -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 新手时,很多事情可能会让你不知所措。但是,当你了解问题的根本原因时,你的知识会逐渐增加。

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

如果你仍然有疑问或需要帮助,请在评论区告诉我吧。


via: https://itsfoss.com/bash-command-not-found/

作者:Abhishek Prakash 选题:lujun9972 译者:chai001125 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


LCTT 译者 :chai001125
🌟🌟
翻译: 5.0 篇
|
贡献: 14 天
2022-10-06
2022-10-20
https://linux.cn/lctt/chai001125
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
通过 SSH 在远程 Linux 系统上执行命令 | Linux 中国如何提高 Ubuntu 和其他 Linux 系统中的扬声器音量 | Linux 中国Logitech Z506 Surround Sound Home Theater Speaker System你现在可以在 Arch Linux 上安装 Unity 7.6 桌面了 | Linux 中国如何在 Ubuntu 和其他相关 Linux 中安装 Python 3.10 | Linux 中国操作系统人机对话!Linux OS大谈Windows与macOS:值得学习,但被Linux碾压如何在 Ubuntu Linux 上更新谷歌 Chrome | Linux 中国在Domino's Pizza消费满$5,返现$5!@ CommBank & Domino's重游耶鲁校园陌上花开875 Be Your Mirror, Your Sword, Your Shield, and Your LoveRhino Linux:滚动发布但也很稳定的 Ubuntu | Linux 中国Cities Offer Huge ‘Group Buying’ Discounts on Unsold PropertiesBigCommerce Shannon Ingrey:DTC模式下,中国卖家更需要讲好品牌故事|36氪专访Rosalía 登意大利版《VOGUE》封面![评测]NVIDIA GeForce RTX 4080 Founders Edition 评测【万歌诗词】卷三、五言诗bāo huā shēng?bō huā shēng?免费领取圣罗兰ALL HOURS FOUNDATION粉底新品样品!@ YSL如何在 Ubuntu 和其他 Linux 中检查 CPU 和硬盘温度 | Linux 中国Ousted Luckin Founder Charts Comeback With New Coffee Business中式思维的稳定性与西式思维的进取性Young Chinese Are Overdosing on Cough Meds to Combat StressA Beijing Theater Is Committed to Screening Movies for the BlindAtoms 是一个可以让你轻松管理 Linux Chroot 环境的 GUI 工具 | Linux 中国如何在 Ubuntu 等 Linux 中安装 Python 3.11 | Linux 中国Vanilla OS:不只是原味 GNOME 的 Ubuntu | Linux 中国准备好在 Debian Linux 上获得 Ubuntu MATE 的体验吧! | Linux 中国如何在 Arch Linux 中安装 OpenOffice(新手指南) | Linux 中国Gnoppix Linux 22.12 发布 | Linux 中国What Do Counseling and Cosmetology Have in Common?说到定息, 想起六十年代中期上海动员去新疆的一个”先进典型“忙一早上的成果:蒜香面包 花卷 包子用惯 Linux 的人第一次用 Windows 或 macOS 会怎样? | Linux 中国Tuxedo 已对所有用户开放基于 Ubuntu 的 TUXEDO OS | Linux 中国
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。