Linux 解决不能执行二进制文件问题
在本文中,我们将学习如何在 Linux 中执行二进制文件。 如果 Linux 无法执行二进制文件,我们还将学习如何解决错误。
通常,当我们在 Linux 中运行 shell 脚本时,就会出现这个错误。 本文将提供所有工作方法来帮助您解决此问题。
Linux 二进制文件
在编程中,binary表示二,二进制文件有两个字符(1,0)。 二进制文件用于存储信息和数据。
在 Linux 中,二进制文件扩展名为 .bin。 二进制文件可以在 Linux 中通过语法 ./file.bin 来执行。
当我们在 Linux 系统中执行二进制文件时,有时会出现 cannot execute a binary file 的错误。 这个错误意味着 Linux 系统没有将其识别为 shell 脚本或可执行文件。
让我们看看如何在 Linux 中解决此错误的方法。
解决 Linux 中无法执行二进制文件错误
原因可能是二进制文件的体系结构类型不匹配。 另一个原因可能是用户没有执行二进制文件的权限。
那么在Linux系统中,我们就给大家提供几个解决办法来消除这个问题。 尝试使用以下解决方案之一,然后检查错误是否已解决。
检查文件的架构
遇到这个错误时,您需要做的第一件事就是确保您获得了正确的二进制文件。 因为如果你有一个 32 位的二进制文件在 64 位系统上执行它,它不会执行并且会给你错误。
32 位的二进制文件在 64 位系统上不起作用,反之亦然。 我们可以使用以下命令检查 Linux 中任何文件的体系结构。
命令的语法:
$ file filename
用于文件架构的命令:
$ file test.sh
如图所示,我们使用了终端命令文件test.sh。 我们可以在输出中看到名为 test.sh 的文件的体系结构。
这样,我们也可以找到一个二进制文件的架构。
如果您的二进制文件的架构与您运行它的系统不匹配,您需要将您的二进制文件运行到匹配的架构系统。
检查您的二进制文件格式
我们在 Windows、Linux 和 macOS 系统上运行二进制文件。 为 Windows 系统制作的二进制文件不会运行其他操作系统,反之亦然。
这些二进制文件有不同的格式,可以帮助用户区分它们。 如果您在 Linux 系统上运行为 Windows 或 macOS 制作的二进制文件,它将不起作用。
您必须在 Linux 操作系统上运行为 Linux 制作的二进制文件。
在 Linux 中安装 GCC 和 Gfortran 包
如果我们的 Linux 系统中没有安装 GCC 和 Gfortran 这两个包,那么这可能是我们的 Linux 系统无法执行二进制文件的原因。 必须安装这些包(GCC 和 Gfortran)才能使多个二进制文件正确编译和执行。
我们可以在终端中使用以下命令来安装这些库。
用于安装 Gfortran 包的命令:
$ sudo apt-get install gfortran
用于安装 GCC 软件包的命令:
$ sudo apt-get install build-essential
在 Linux 系统中安装这两个包后,就可以解决无法执行二进制文件的错误。
尝试解压缩二进制文件
有时,我们会压缩二进制文件,使它们更容易在 Internet 上共享。 如果您正在执行的二进制文件已经压缩,请尝试解压缩该文件。
我们可以在终端中使用以下命令解压缩二进制文件。
用于解压缩文件的命令:
$ xz -d ./filename
检查二进制文件权限
二进制文件无法在 Linux 系统上执行的另一个原因可能是用户没有更改或读取文件二进制文件的权限。 我们可以通过在终端中使用以下命令授予二进制文件执行权限来解决此问题。
用于授予文件执行权限的命令:
$ chmod +x filename
设置权限后,我们可以在终端中使用此命令运行二进制文件:
$ ./filename
使用 dos2unix 命令执行二进制文件
解决无法执行二进制文件的最佳解决方案是在 Linux 中使用 dos2unix 命令。 这个命令可以帮助我们在我们的 Linux 系统上运行为 DOS 制作的二进制文件。
用于将 DOS 二进制文件转换为 Unix 格式的命令:
$ dos2unix filename.bin
在终端中使用该命令后,DOS 格式的二进制文件将转换为 Unix 格式。 然后,我们的 Linux 系统就可以执行二进制文件了。
本文解释了解决 Linux 中无法执行二进制文件错误的所有可能解决方案。 我们希望您发现这篇 Linux 文章有助于理解如何在 Linux 中执行二进制文件。
相关文章
如何在 CentOS 中获取 IP 地址
发布时间:2023/05/04 浏览次数:108 分类:操作系统
-
这篇简短的文章是对 CentOS 的一个简短介绍,然后简要讨论了我们如何使用命令行界面 (CLI) 在 CentOS 中获取服务器 IP 地址。
在 Linux 中更新 YUM
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
本文介绍了 Linux 中的 yum update 命令。本文将教我们如何在 Linux 中更新 YUM,以及如何在 Linux 系统上安装、更新、删除、查找和管理包。
在 Linux 中安装 Deb 文件
发布时间:2023/05/04 浏览次数:130 分类:操作系统
-
本文介绍如何在 Linux 中安装 deb 文件。在这篇 Linux 文章中,我们将学习如何在 Linux 系统上安装 .deb(Debian 软件包)文件。 我们还将看到如何在安装后删除 .deb 文件。
Linux 中的 lsof 命令
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
在这篇 Linux 文章中,我们将了解 Linux 操作系统中的 lsof 命令。 我们将看到如何在 Linux 中将此命令用于不同目的。
Linux 中错误 Mesg: Ttyname Failed: Inappropriate Ioctl for Device Error
发布时间:2023/05/04 浏览次数:145 分类:操作系统
-
本文介绍如何在 Linux 中解决 mesg: ttyname failed: inappropriate ioctl for device 错误。在 Linux 中,这个错误是由于默认的 vagrant 配置 config.ssh.shell 与 bash -l 交互导致的。
Linux 中的 ps aux 命令
发布时间:2023/05/04 浏览次数:69 分类:操作系统
-
本篇文章将讨论 Linux 中的 ps aux 命令。如果将 aux 快捷方式与 ps 命令一起使用,它将显示用户需要的最多信息,并可以为您提供系统运行进程的当前状态。
Linux 中的 NTP
发布时间:2023/05/04 浏览次数:137 分类:操作系统
-
本篇文章将讨论 Linux 中的 ntp。NTP 是大多数 IT 基础设施使用的核心协议。 使用它的目的是同步日期和时间信息。
在 Bash 中创建进度条
发布时间:2023/05/04 浏览次数:164 分类:操作系统
-
这是有关在 Bash 中创建进度条以显示正在运行的命令或进程的进度的指南。本文将探讨在 Bash(Linux 和 macOS 的默认 shell)中向 shell 脚本添加进度条的几种方法。使用 pv 命令在 Bash 中创建进度条
在 Bash 中将 Stderr 和 Stdout 重定向到一个文件
发布时间:2023/05/04 浏览次数:130 分类:操作系统
-
本文介绍了如何在 Bash 中重定向 stderr 和 stdout。让我们开始了解 Linux 中的标准输出和标准错误这两个术语。Linux 中的标准输出和标准错误 在 Linux 中,命令从用户那里获取一些输入,可以是文件