正確な実行可能ファイル拡張子が何なのかわかりません。それ.deb
か.tar.gz
?
.exe
ネイティブの実行可能ファイルのために必要されていない拡張子。前者は/dev
; の内容を説明します。後者は、実行権限と、ファイルの種類を判断するためにファイルの内部を調べることに依存しているためです。
正確な実行可能ファイル拡張子が何なのかわかりません。それ.deb
か.tar.gz
?
.exe
ネイティブの実行可能ファイルのために必要されていない拡張子。前者は/dev
; の内容を説明します。後者は、実行権限と、ファイルの種類を判断するためにファイルの内部を調べることに依存しているためです。
回答:
Windowsには「.exe」ファイルのような標準のファイル拡張子はありません。
Linuxでは、ほぼすべてのファイルが実行可能です。ファイルの末尾には、ファイルが「実行」される内容または方法が記述されています(必ずしもではありません)。
たとえば、シェルスクリプトは.shで終わり、bashシェルを介して「実行」されます。
.debと.tar.gzを要求する質問では、.debファイルはシステムにソフトウェアをインストールします(注意してください!)そして、.tar.gzファイルは、.zipのような圧縮ファイルであり、そこから知ることができますWindows。
.deb
ファイルは実行可能ファイルではない傾向があります。これらはELFスクリプトでも「シェバン」スクリプトでもないため、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の後のパスは、スクリプトを解析する必要があるプログラム(実行可能ファイル)へのパスです。実行許可がでファイルに設定されていると仮定しますchmod a+x filename
。
したがって、あなたの元の質問に答える、拡張子が存在しない、またはめったに、それはありません.elf
か.bin
。
これはコミュニティWikiになっているため、誰でもエントリを追加できます。
実行可能ファイルの概念は、unix / linuxとWindowsで異なります。
実行可能ファイルで終わる.exe
か.com
、実行可能ファイルになるもの。
すべてのファイルには実行可能ビットがあるため、Windowsとは異なり、任意のファイルを実行できます。ファイルが実行可能かどうかを確認するには、そのプロパティ([アクセス許可]タブ)を確認するか、ターミナルでそれらをマークすることもできます(すべて*でマークされています)。
テキストファイル(シェルスクリプトなど)でも実行可能ビットを設定し、1つのファイルとして実行できます。
#!/bin/bash
があります。たとえば、ファイルの先頭にあるシェバンは、どのプログラムがファイルを実行するかを設定します。
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プログラムを正しく識別するのに十分賢いです:
$ 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で見つかったファイルはモノラルアプリケーションであり.exe
、Windows / .Netの世界から来ている慣習として拡張子を取得します。
ファイルを「実行」する場合に発生する可能性があるもう1つの側面は、これらのファイルを開くプログラムを起動できるように、レジスタ拡張機能を使用するファイルエクスプローラーツールを使用することです。これは、たとえば.txt
、.tar.gz
またはをダブルクリックすると発生します。.deb
たとえば、ファイルは実行可能ファイルでも実行ファイルでもありませんが、ダブルクリックに使用するものは、これらのファイルを開くために起動する実行可能ファイルを選択します。
Windowsでは、.exeファイルは、一般に実行可能ファイルと呼ばれる拡張子「.exe」で終わるコンピューターファイルです。exeファイルをクリックすると、組み込みルーチンが自動的にコードを実行し、いくつかの機能を動作させることができます。エグゼファイルは、Windowsオペレーティングシステムにファイルをインストールするために一般的に使用されます。
さらに、一般に圧縮ファイルと呼ばれる.tarファイルがあります。UbuntuなどのLinuxバージョンは、さまざまなソフトウェア配布で機能を顕著に使用し、ほとんどのソフトウェアソースコードはtar.gz形式で利用可能です。 gzは、よく知られている.tar形式の形式で、アーカイブに使用されます。
一方、Ubuntuでは、.debファイル形式はWindowsでの.exeファイルのように動作する形式であり、それを開くと、ソフトウェアセンターがそのコードを処理し、実行可能ファイルなどのプログラムをインストールします。
ソース形式(tar.gz)からソフトウェアとパッケージをインストールできますが、ソフトウェアのインストールに最適な形式は.deb形式です。例としてUbuntu Software Centerを参照してください。実際には、含まれるすべてのアプリケーションは実際には.debファイルです。一般に、Linuxでは、ほとんどすべてのファイル形式(.debおよびtar.gz、および既知のbashファイル.shを含む)が実行可能ファイルとして動作できるため、それでパッケージまたはソフトウェアをインストールできます。
Windowsには、ファイルが実行可能であることを示すexeファイル拡張子に相当するものはありません。代わりに、実行可能ファイルには任意の拡張子を付けることができ、通常は拡張子をまったく付けません。
Linux / Unixはファイル許可を使用して、ファイルが実行される可能性があるかどうかを示します。具体的には、このファイルの実行が許可されていることをシステムに伝えるファイル実行許可があります。ただし、このアクセス許可がないことは、ファイルが実行可能ファイルではないことを示すものではありません。単に、関連するユーザーが実行を試みることを許可されていないというだけです。同様に、この許可の存在は、ファイルが有効な実行可能ファイルであることを常に示すとは限りません。
Linux / Unixには、通常.exeという拡張子を持つPE(Windows)またはMZ / NE(DOS)バイナリ実行可能形式に相当するELFと呼ばれるバイナリ実行可能ファイル形式があります
ただし、シェルによっては、他の種類のファイルが実行可能になる場合があります。通常、システムがバイナリ実行可能ファイル(ELF形式など)として認識しないファイルを実行しようとすると、現在のシェルインタープリターによって解釈されます。これは、WindowsまたはDOSのバッチファイルと同じ効果を発揮しますが、その種類または実行方法を識別する拡張子ではありません。
シェルファイルは、オプションでハッシュバン(ファイルの最初の2文字の#!
後にインタープリターへのパスが続く)で始まる場合があります。この場合、ファイルの残りの部分を現在のシェルインタープリターで解釈するのではなく、ファイルを実行します。したがって、任意のインタープリター言語でスクリプトを作成し、スクリプトを実行するときに正しいインタープリターで実行することができます。
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標準のGNU zip(gzip)圧縮アルゴリズムで圧縮されたLinuxおよびTARアーカイブ用Debianパッケージ。1つ以上の圧縮ファイルが含まれています。ファイル、プログラム、インストーラーをパッケージ化するためにUnixオペレーティングシステムで一般的に使用されます。
注:TAR.GZファイルは最初に解凍し、TARユーティリティを使用して展開する必要があります。これらには、.TARと.GZの両方のファイルタイプが含まれます。