我不知道确切的可执行文件扩展名是什么。是.deb
还是.tar.gz
?
.exe
不被需要对本地的可执行文件扩展名。前者解释了内容/dev
; 后者是因为具有执行权限,并且依赖检查文件内部以确定文件的类型。
我不知道确切的可执行文件扩展名是什么。是.deb
还是.tar.gz
?
.exe
不被需要对本地的可执行文件扩展名。前者解释了内容/dev
; 后者是因为具有执行权限,并且依赖检查文件内部以确定文件的类型。
Answers:
Windows中没有像“ .exe”文件那样的标准文件扩展名。
在Linux上,几乎任何文件都可以执行。文件结尾只是(但不一定)描述“执行”文件的方式或方式。
例如,shell脚本以.sh结尾,并通过bash shell“执行”。
在您的问题中,您需要.deb和.tar.gz。.deb文件会在您的系统上安装软件(请注意!),. tar.gz文件是一个压缩文件,如.zip,您可以从中了解视窗。
.deb
文件往往不是可执行文件:它们既不是ELF脚本也不是“ she-bang”脚本,并且不太可能在binfmt中注册。即使拥有可执行权限,内核也不知道如何处理它们。可以注册您的文件资源管理器以使用某个基于扩展名的特定应用程序打开文件的事实与它们的可执行性无关(就文件许可或内核二进制格式执行而言)。
.deb
.msi
比.exe
文件更像文件。
我将通过以下方式总结该系统:
Linux extension |Windows Equivalent |Short description
------------------------------------------------------------
.so, .o | .dll | Object that can be loaded at runtime (Similar to DLL)
.a | .lib | Static library
[none], .elf(rare),| .exe, .com(rare) | Linux executables
.bin(rare) | |
.sh | .bat | Shell script
.exe | .exe | Mono application, Wine application
.deb | .msi | Installer package for Debian/Ubuntu releases
| | (Though .deb is much more powerful with
| | native support for dependencies and repos). Note that .deb is actually a .ar archive with a special control file, a special file order, and a different extension.
.rpm | .msi | Installer package for RedHat/CentOS releases.
.tar.gz, .tar, .gz | .zip | Compressed files that can contain a program or any other data, like images, documents, etc
.ko | .sys | Drivers and kernel modules are loaded into the Linux kernel and have more hardware access than other programs.
.sh, .php, .py, etc| .bat, .cmd, .vbs, | Linux is capable of running any file that it has an interpreter for.
| .js | A line at the top of the file called the shebang specifies what interpreter to run the file with.
| | Windows only supports .bat and .cmd files as Batch files, and .vbs (vbscript) and .js (JScript, not to be confused with JavaScript) via the Windows Script Host (WSH).
#!
第一行中任何以shebang或hashbang 开头的文件都只是一个脚本。shebang之后的路径是需要解析脚本的程序(可执行文件)的路径,假定已使用设置了文件的执行许可权chmod a+x filename
。
因此,请回答您的原始问题,没有扩展名,或者很少是,.elf
或者.bin
。
这已成为Community Wiki,因此任何人都可以添加一个条目。
在UNIX / Linux中,可执行文件的概念与Windows不同。
任何以可执行文件结尾.exe
或.com
变为可执行文件的东西。
每个文件都有一个可执行位,因此与Windows不同,任何文件都可以执行。要查看文件是否可执行,可以检查其属性(“权限”选项卡),甚至可以在终端中看到它们的标记(它们都标记有*)。
甚至文本文件(如Shell脚本)也可以设置其可执行位,并作为一个文件运行。
#!/bin/bash
开头的shebang(例如)设置了执行该文件的程序。
man magic
,ELF man elf
和散列砰线man execve
)
要查明UNIX操作系统认为特定文件的类型是什么,请使用file命令:
$ file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1, for OpenBSD, statically linked, stripped
在上面的示例中,我给出了程序“ ls”的路径,您将用文件的路径替换它。
脚本文件如下所示:
$ file script.sh
script.sh: Bourne-Again shell script text
随机文本文件:
$ file textfile
textfile: ASCII text
存档文件:
$ file rsync-3.0.6.tar.gz
rsync-3.0.6.tar.gz: gzip compressed data, from Unix
如果您恰巧在UNIX机器上放着一个Windows程序,它甚至足够聪明,可以正确地识别Windows程序:
$ file FMZsetup.exe
FMZsetup.exe: MS-DOS executable (EXE), OS/2 or Windows
当它无法弄清文件是什么(但是能够打开它)时,它将其称为数据:
$ file myrandom
myrandom: data
Linux上的文件执行与文件名或扩展名根本无关。只要文件由内核binfmt
机制处理(并设置了可执行权限),任何文件都可以执行。
可执行文件最常见的格式是ELF,尽管可以编译某些内核以支持旧a.out
格式。(有关完整的技术细节,请参见binfmt_elf.c
。)
另一个常见的机制是“ Shebang”系统,由负责处理binfmt_script
,该系统#!/path/to/interpreter
在文件的开头查找。
binfmt_misc
允许注册其他处理程序,如此处所述。
如果您愿意做一些内核编程,甚至可以编写自己的。
尽管没有直接关系,但是该file
命令应该告诉您文件是ELF可执行文件还是其他文件。
命名约定与文件的可执行状态无关(除非用于binfmt_misc
注册)。它们只是约定而已。通常,.exe
在Linux上找到的文件可以是mono应用程序,其.exe
扩展名来自Windows / .Net。
当您要“运行”文件时,可能发生的另一方面是使文件浏览器工具可以使用注册扩展名来启动将打开这些文件的程序。例如.txt
,如果双击.tar.gz
或.deb
,就会发生这种情况:这些文件既不是可执行文件,也不是执行文件,但是您双击所用的文件将选择启动哪个可执行文件来打开这些文件。
在Windows中,.exe文件是计算机文件,以扩展名“ .exe”结尾,通常称为可执行文件。当您单击一个exe文件时,内置的例程会自动执行可将多项功能设置为动态的代码。Exe文件通常用于在Windows操作系统中安装文件。
此外,您还有.tar文件,通常称为压缩文件。Linux版本(例如Ubuntu)在各种软件发行版中都具有突出的功能,并且大多数软件源代码都以tar.gz格式提供。由此可以假定tar。 gz是众所周知的.tar格式的一种形式,用于存档。
另一方面,在Ubuntu中,.deb文件格式的行为更类似于Windows中的.exe文件。当您打开它时,软件中心会处理它的代码并安装其中包含的程序,例如可执行文件。
即使您仍可以从源格式(tar.gz)安装软件和软件包,但最适合安装软件的格式是.deb。它包含的所有应用程序实际上都是.deb文件。通常,在linux中,几乎每种文件格式(包括.deb和tar.gz以及众所周知的bash文件.sh)都可以充当可执行文件,因此您可以安装软件包或软件。
Windows中没有等效于exe的文件扩展名来表示文件可执行。相反,可执行文件可以具有任何扩展名,并且通常根本没有扩展名。
的Linux / Unix使用文件权限来表示,如果一个文件可以被执行。具体来说,有一个执行文件许可权,它告诉系统允许执行此文件。但是,缺少此权限并不表示该文件不是可执行文件。只是相关用户不允许尝试执行它。同样,此权限的存在并不总是表示该文件是有效的可执行文件。
Linux / Unix具有称为ELF的二进制可执行文件格式,该格式等效于通常带有扩展名.exe的PE(Windows)或MZ / NE(DOS)二进制可执行文件格式。
但是,取决于外壳程序,其他类型的文件也可以执行。通常,如果您尝试执行系统无法识别为二进制可执行文件(例如ELF格式)的文件,则该文件将由当前的Shell解释器进行解释。这实现了与Windows或DOS中的批处理文件相同的效果,但再次是,扩展名不能标识其类型或执行方式。
Shell文件可以选择以hashbang开头(文件中的前两个字符#!
后跟解释器的路径),在这种情况下,可以使用当前的Shell解释器而不是使用当前的Shell解释器来解释文件的其余部分,而是可以启动执行文件。因此,您可以使用任何已解释的语言编写脚本,并在尝试执行脚本时仍使用正确的解释器运行脚本。
EXE和DLL文件是可移植的可执行文件。这些基于PE / COFF Unix文件。
阅读http://en.wikipedia.org/wiki/Portable_Executable以获得更多信息。
在Ubuntu中,您没有可执行文件的特定扩展名。这些通常是文件,它们也以它们相关的应用程序命名。
重要的因素是这些文件已设置了可执行位。如果您使用的是彩色端子,则使用列出时,它们将是另一种颜色ls
。
在UNIX文件系统中,二进制可执行文件通常存储在自己的位置。
而其他应用程序资源可能存储在/ usr / lib /或/ usr / share /
一个deb文件更正确地对应于Windows中的一个msi文件(即软件包安装程序)。
通常tar.gz文件或bz2文件包含可用于构建应用程序的源代码
.deb用于Linux和TAR归档文件的Debian软件包,使用标准GNU zip(gzip)压缩算法压缩;包含一个或多个压缩文件;通常在Unix操作系统上用于打包文件,程序和安装程序。
注意:必须先解压缩TAR.GZ文件,然后使用TAR实用程序将其扩展。它们包括.TAR和.GZ文件类型。