nan*_*rad 100
| Linux 扩展 | Windows 等效 | 简短的介绍 |
|---|---|---|
| .so,.o | .dll | 可以在运行时加载的对象(类似于 DLL) |
| 。一种 | .lib | 静态库 |
| [无], .elf(稀有), | .exe、.com(罕见) | Linux 可执行文件 |
| .bin(罕见) | ||
| .sh | 。蝙蝠 | 外壳脚本 |
| 。可执行程序 | 。可执行程序 | Mono 应用程序,Wine 应用程序 |
| .deb | .msi | Debian/Ubuntu 发行版的安装包 |
| (尽管 .deb 对依赖项和存储库的本机支持要强大得多)。请注意,.deb 实际上是一个带有特殊控制文件、特殊文件顺序和不同扩展名的 .tar 存档。 | ||
| .rpm | .msi | RedHat/CentOS 版本的安装程序包。 |
| .tar.gz、.tar、.gz | 。压缩 | 可以包含程序或任何其他数据的压缩文件,如图像、文档等 |
| .ko | .sys | 驱动程序和内核模块被加载到 Linux 内核中,并且比其他程序具有更多的硬件访问权限。 |
| .sh、.php、.py 等 | .bat、.cmd、.vbs、 | Linux 能够运行它有解释器的任何文件。 |
| .js | 文件顶部名为 shebang 的一行指定了运行文件的解释器。 | |
| Windows 仅通过 Windows 脚本主机 (WSH) 支持 .bat 和 .cmd 文件作为批处理文件,以及 .vbs (vbscript) 和 .js (JScript,不要与 JavaScript 混淆)。 |
Eve*_*mbH 55
Windows 中没有像“.exe”文件那样的标准文件扩展名。
在 Linux 上,几乎任何文件都可以执行。文件结尾仅描述(但不一定)文件“执行”的内容或方式。
例如,shell 脚本以 .sh 结尾,并通过 bash shell“执行”。
在您的问题中,您要求 .deb 和 .tar.gz 好吧,.deb 文件会在您的系统上安装软件(请小心!)而 .tar.gz 文件是一个像 .zip 一样的压缩文件,您可以从中了解视窗。
Nem*_*emo 24
unix/linux 中可执行文件的概念与 Windows 不同。
任何以可执行文件结尾.exe或.com变成可执行文件的东西。
每个文件都有一个可执行位,因此与 Windows 不同,任何文件都可以执行。要查看文件是否可执行,您可以检查其属性(权限选项卡),甚至在终端中查看它们的标记(它们都用 * 标记)。
即使是文本文件(如 shell 脚本)也可以设置它们的可执行位,并作为一个运行。
小智 16
要了解 UNIX 操作系统认为特定文件的类型是什么,请使用 file 命令:
$ file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1, for OpenBSD, statically linked, stripped
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我给出了程序“ls”的路径,你可以用你的文件路径替换。
脚本文件如下所示:
$ file script.sh
script.sh: Bourne-Again shell script text
Run Code Online (Sandbox Code Playgroud)
一个随机文本文件:
$ file textfile
textfile: ASCII text
Run Code Online (Sandbox Code Playgroud)
一个存档文件:
$ file rsync-3.0.6.tar.gz
rsync-3.0.6.tar.gz: gzip compressed data, from Unix
Run Code Online (Sandbox Code Playgroud)
如果您的 UNIX 机器上有一个 Windows 程序,它甚至足以正确识别 Windows 程序:
$ file FMZsetup.exe
FMZsetup.exe: MS-DOS executable (EXE), OS/2 or Windows
Run Code Online (Sandbox Code Playgroud)
当它无法弄清楚文件是什么(但能够打开它)时,它会称其为数据:
$ file myrandom
myrandom: data
Run Code Online (Sandbox Code Playgroud)
Bru*_*uno 13
Linux 上的文件执行与文件名或扩展名完全无关。任何文件都可能被执行,前提是它由内核的binfmt机制处理(并且设置了其可执行权限)。
可执行文件最常见的格式是ELF,尽管可以编译一些内核以支持旧a.out格式。(有关完整的技术细节,请binfmt_elf.c查看此处。)
另一种常见的机制是“Shebang”系统,由 处理binfmt_script,它#!/path/to/interpreter在文件的开头查找。
binfmt_misc允许注册其他处理程序,如此处所述。
如果您喜欢进行一些内核编程,您甚至可以编写自己的.
尽管没有直接关系,但该file命令应该告诉您文件是 ELF 可执行文件还是其他文件。
命名约定与文件的可执行状态无关(除非用于binfmt_misc注册)。他们只是约定俗成。通常,.exe在 Linux 上找到的文件可能是单声道应用程序,将.exe扩展名作为来自 Windows/.Net 世界的约定。
当您想要“运行”文件时可能发生的另一个方面是使用文件资源管理器工具,您可以使用注册扩展来启动将打开这些文件的程序。这是会发生什么,如果你双击一个.txt,.tar.gz或者.deb,例如:文件不是可执行文件,也没有执行,而是你用什么双击选择的启动来打开这些文件,其中的可执行文件。