Linux命令行报bash:.....:command not found的解决办法

本文介绍了解决Linux系统中因PATH环境变量配置不当导致的命令未找到问题的方法。通过临时修改PATH变量及持久化设置,确保系统能够正确识别并执行命令。


          Linux命令行输入命令执行后报“bash:....:command not found”这是由于系统PATH设置问题,PATH没有设置对,系统就无法找到精确命令了。

        

           1、在命令行中输入:export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin  这样可以保证命令行命令暂时可以使用。命令执行完之后先不要关闭终端。

 

           2、在命令行中输入 vi /etc/profile.d/java.sh 查看是否自己另外设置了PATH属性。

               

                 在Vi编辑器中输入

 

             export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin

 

    我的Linux系统是由于设置JAVA环境变量时设置PATH属性导致command not found错误,所以我本机的PATH属性设置如下:

  

    export PATH=$JAVA_HOME/bin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin

 

 

           3、关闭终端,重新打开终端,输入命令执行,OK,全部正常!

 

 

                                                                           (完)

<think>我们正在处理一个关于`./configure`脚本在2164行错的问题。根据提供的引用,类似错误通常与语法错误有关,例如引号不匹配、未预期的标记或配置脚本无法识别系统类型等。 引用[1]显示,错误是由于`configure`脚本中的引号配对错误引起的,具体在2133行有一个反引号未正确闭合。 引用[2]中,错误出现在5803行,是一个语法错误,标记`-Wbool-conversion'`附近有问题。 引用[3]则是因为`config.sub`脚本无法识别`-linux`作为参数,导致配置失败。 用户告的错误出现在2164行,因此我们需要检查该行附近的代码。 由于用户没有提供具体的错误信息,我们只能根据常见原因进行推测。常见的错误包括: 1. 引号(单引号、双引号、反引号)未正确闭合。 2. 使用了未定义的变量或变量名拼写错误。 3. 条件语句或循环语句的语法错误。 4. 使用了不支持的shell语法(例如,脚本可能要求使用Bash,但实际运行在更简单的sh上)。 5. 环境变量或系统命令的输出不符合预期。 建议用户执行以下步骤: 1. 打开`configure`脚本,定位到2164行及附近几行,检查是否有明显的语法错误(如引号不匹配、括号不匹配、缺少分号等)。 2. 检查该行使用的命令或变量是否定义。例如,如果使用了`$SOME_VAR`,确保之前已经定义。 3. 尝试在运行`./configure`之前设置SHELL为bash:`export SHELL=/bin/bash`,然后重新运行。 4. 如果错误信息中包含具体的错误描述(如“unexpected token”或“unterminated quoted string”),请根据描述进行排查。 5. 如果问题仍然存在,尝试在配置时使用更详细的日志输出,例如:`./configure --verbose`,这可能会提供更多线索。 另外,根据引用[3],如果错误涉及`config.sub`,可能需要更新该文件(通常位于同一目录下)为一个更新的版本,以支持当前系统类型。 由于用户没有提供具体的错误信息,我们只能给出一般性建议。 相关问题: 1. 如何调试`configure`脚本中的语法错误? 2. 在运行`./configure`时遇到“syntax error near unexpected token”错误,如何解决? 3. 如何更新`config.sub`和`config.guess`文件? 4. 为什么在运行`./configure`时会因为引号问题而失败? 5. 如何确保`./configure`脚本在正确的shell环境中运行?</think>根据您提供的错误信息和引用内容,`./configure` 在2164行错通常与以下问题相关: ### 常见原因分析 1. **语法错误** - 最常见的是**引号不匹配**(如单引号/双引号未闭合),如引用[1]中2133行的反引号`问题: ```bash system=MP-RAS-`awk '{print }' /etc/.relid'` # 反引号与单引号嵌套错误 ``` - 或**特殊符号未转义**,如引用[2]中5803行的`-Wbool-conversion`编译选项未正确处理。 2. **平台兼容性问题** - `config.sub/config.guess`脚本无法识别当前系统架构,如引用[3]中`./config.sub -linux failed`错误,通常发生在交叉编译或非标准系统环境。 3. **环境变量污染** - 缓存变量包含换行符(如引用[3]的`ac_cv_build contains a newline`),可能因环境变量设置不当导致。 --- ### 解决步骤 1. **检查2164行语法** 用文本编辑器打开`configure`脚本,定位到2164行: ```bash vim configure +2164 # 或使用其他编辑器 ``` - 检查引号是否成对闭合(`' '`,`" "`,`` ` ``) - 确认特殊符号(`$`, `{ }`, `( )`)是否转义 - 示例修复(假设问题为引号不匹配): ```diff - 检查行: system=`uname -a | awk '{print $1}'` + 修复后: system="$(uname -a | awk '{print $1}')" # 改用双引号和$()避免嵌套问题 ``` 2. **更新配置文件** 如果是平台识别问题: ```bash wget https://git.savannah.gnu.org/cgit/config.git/plain/config.sub -O config.sub wget https://git.savannah.gnu.org/cgit/config.git/plain/config.guess -O config.guess ``` 3. **清理环境后重试** ```bash make distclean # 清理旧配置 unset ac_cv_build # 清除问题变量 export SHELL=/bin/bash # 强制使用Bash ./configure --verbose # 显示详细日志 ``` --- ### 典型错误示例 假设2164行内容为: ```bash if test "x$host_os" = xlinux-android; then # 可能缺少闭合引号 ``` 修复后: ```bash if test "x$host_os" = "xlinux-android"; then # 补全双引号 ``` > **注意**:具体修复需结合实际代码。若仍失败,请提供2164行附近的10行上下文(`sed -n '2160,2170p' configure`)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值