前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Bash: Command Not Found命令未找到

Bash: Command Not Found命令未找到

作者头像
入门笔记
发布2022-06-02 18:58:44
5.4K0
发布2022-06-02 18:58:44
举报
文章被收录于专栏:入门小站入门小站

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

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

解决bash: command not found

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

代码语言:javascript
复制
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命令取代。

代码语言:javascript
复制
ipconfig
-bash: command not found: ipconfig

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

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

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

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

代码语言:javascript
复制
root@debian-test:~/scripts# sample
-bash: sample: command not found

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

代码语言:javascript
复制
root@debian-test:~/scripts# ./sample
hello world

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

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

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

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

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

代码语言:javascript
复制
which zsh
##output
/usr/bin/zsh

which ping
##output
/usr/bin/ping

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决bash: command not found
  • 确定是否存在拼写错误
  • 确保该命令已安装在你的系统上
  • 检查可执行脚本路径是否正确
  • 检查命令是否在PATH环境变量的路径中
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档