Apa yang setara dengan "file exe"?

47

Saya tidak tahu apa sebenarnya ekstensi file yang dapat dieksekusi itu. Apakah itu .debatau .tar.gz?

pengguna54905
sumber
13
Bukan jawaban tetapi ingin menambahkan SEMUANYA dalam LINUX adalah FILE sehingga memiliki Ekstensi sebagai .exe tidak masalah.
atenz
15
@tijybba Filosofi desain "semuanya adalah file" sama sekali tidak terkait dengan .exeekstensi yang tidak diperlukan untuk executable asli. Yang pertama menjelaskan isi /dev; yang terakhir adalah karena mengeksekusi izin dan mengandalkan memeriksa bagian dalam file untuk menentukan jenis file itu.
Eliah Kagan
@ Eliah Kagan - Itu hanya info dasar karena ekstensi Windows diperlukan untuk eksekusi, baik di Linux tidak, sejauh menyangkut Izin yang Dapat Diperhatikan, itu memerlukan sedikit lebih banyak. , yang saya kira seseorang akan mengklarifikasi jawaban sebagai bagian terakhirnya, jika diperlukan maka saya mempostingnya sebagai komentar bukan jawaban.
atenz
4
@tijybba Tapi "segalanya" menjadi file tidak benar-benar ada hubungannya dengan topik pertanyaan ini, bukan?
Eliah Kagan
2
Saya kira saya salah membaca bagian itu dalam pertanyaan, yang mengatakan "apa itu file exe di Ubuntu?", Saya dianggap Executable , tetapi sekarang dengan bantuan Anda, tampaknya itu berarti "apa itu file .exe di Ubuntu?". Jika ini sangat tidak pantas, beri tahu saya bahwa saya akan dengan senang hati menghapusnya (Kesalahan adalah pengalaman belajar yang luar biasa: D).
atenz

Jawaban:

42

Tidak ada Ekstensi File standar seperti file ".exe" di Windows.

Di Linux, hampir semua file dapat dieksekusi. Akhiran file hanya menjelaskan (tetapi tidak harus) apa atau bagaimana suatu file "dieksekusi".

Misalnya skrip shell diakhiri dengan .sh dan "dieksekusi" melalui bash shell.

Dalam pertanyaan Anda, Anda meminta .deb dan .tar.gz Nah, file .deb menginstal perangkat lunak pada sistem Anda (Harap berhati-hati!) Dan file .tar.gz adalah file terkompresi seperti .zip yang dapat Anda ketahui dari Windows.

rechengehirn
sumber
1
Jadi, .deb adalah file .exe!
user54905
13
@Nick, .debfile cenderung TIDAK dapat dieksekusi: mereka bukan ELF atau skrip "she-bang" dan mereka tidak mungkin terdaftar dengan binfmt. Bahkan dengan izin yang dapat dieksekusi, kernel tidak akan tahu apa yang harus dilakukan dengannya. Fakta bahwa file explorer Anda dapat didaftarkan untuk membuka file dengan aplikasi tertentu berdasarkan ekstensi tidak ada hubungannya dengan mereka yang dapat dieksekusi (dalam hal izin file atau dalam hal eksekusi format biner kernel).
Bruno
4
File deb juga lebih seperti .zip kemudian seperti .exe. Intinya adalah. Deb tidak mengeksekusi sendiri , itu diekstraksi, ditafsirkan dan diinstal oleh beberapa aplikasi lain.
Rafał Cieślak
5
Aplikasi lain itu biasanya adalah Pusat Perangkat Lunak, yang juga berfungsi sebagai penginstal. Linux kurang tergantung pada ekstensi dibandingkan dengan Windows dan karena itu memutuskan eksekusi berdasarkan izin daripada ekstensi.
tyjkenn
33
.deblebih seperti .msifile daripada .exefile.
detly
79

Saya akan meringkas sistem dengan cara berikut:

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).

File apa pun yang dimulai dengan #!(disebut shebang atau hashbang) pada baris pertama hanyalah sebuah skrip. Path setelah shebang adalah path ke program (executable) yang perlu menguraikan skrip, dengan asumsi bahwa izin eksekusi telah ditetapkan pada file dengan chmod a+x filename.

Karena itu, jawab pertanyaan awal Anda, tidak ada ekstensi, atau jarang, itu .elfatau .bin.

Ini telah dibuat Wiki Komunitas, sehingga siapa pun dapat menambahkan entri.

ζ--
sumber
2
Saya belum pernah melihat ekstensi .elf tetapi cukup sering melihat ekstensi .bin.
Calmarius
1
Sementara jawaban yang lain fokus pada fakta bahwa file 'apa saja' dapat dieksekusi, jawaban ini benar-benar memukau, sedangkan mengatakan 'apa pun' dapat menjadi executable tidak benar-benar informatif atau benar, tetapi agak luar biasa. Saya bisa mengganti nama file apa pun di windows menjadi .exe, dan itu akan mencoba untuk mengeksekusinya, tetapi tidak akan selalu berfungsi, di linux-nya sama, jika itu tidak dimaksudkan untuk dieksekusi, itu tidak akan berfungsi ... Masalah saya berkali-kali mengunduh paket, dan tidak benar-benar memahami apa yang harus dimulai, tetapi tentu saja, rtfm.
TrySpace
Anda harus menambahkan ekstensi .bin (sama dengan Windows untuk .exe)
Dani-Br
@ Dani-Br Ini adalah pos komunitas-wiki, artinya orang lain boleh mengeditnya, dan Anda punya cukup reputasi untuk melakukannya (di 101). Saya telah menambahkan .bin untuk saat ini.
ζ--
Ini bukan ekstensi, tetapi bermanfaat bagi saya untuk mengetahui bahwa format "PE" pada Windows setara dengan format "ELF" pada pemikiran Linux
Akuntan
23

Konsep yang dapat dieksekusi berbeda di unix / linux dari Windows.

Windows

Apa pun yang berakhir .exeatau .commenjadi file yang dapat dieksekusi.

Linux / Unix

Setiap file memiliki bit yang dapat dieksekusi, sehingga file apa pun dapat dieksekusi, tidak seperti Windows. Untuk melihat apakah file dapat dieksekusi, Anda dapat memeriksa propertinya (tab Izin), atau bahkan melihatnya ditandai di terminal (semuanya ditandai dengan *).

Bahkan file teks (seperti skrip shell) dapat mengatur bit yang dapat dieksekusi, dan dijalankan sebagai satu.

Nemo
sumber
4
juga layak menambahkan bahwa dalam kasus file teks, shebang ( #!/bin/bashmisalnya) pada awal set file program mana yang mengeksekusi file.
jackweirdy
Ada bit yang dapat dieksekusi terpisah untuk pengguna, grup, dan lainnya. Penggunaan bit ini dapat membatasi siapa yang dapat menjalankan program. Bit tambahan ada untuk SUID dan SGID untuk menyebabkan program berjalan sebagai pengguna atau grup yang memiliki file.
BillThor
Ada beberapa ketidakakuratan di atas: 2) "setiap file memiliki bit yang dapat dieksekusi": ada tiga bit yang dapat dieksekusi (pemilik, grup, dan lainnya), jadi seseorang dapat mengizinkan dirinya sendiri tetapi tidak orang lain untuk mengeksekusi file. Ada juga bit setuid untuk "execute-as-owner" dan setgid "execute-as-group". 2) "file apa pun dapat dieksekusi": tidak begitu. bit izin adalah syarat yang diperlukan tetapi tidak cukup untuk berhasil menjalankan file. Kegagalan langsung akan terjadi misalnya jika file tidak dapat benar-benar dimuat dan dijalankan (Ref: file angka ajaib man magic, ELF man elf, dan hash-bang line man execve)
arielf
16

Untuk mengetahui apa yang menurut sistem operasi UNIX tipe file tertentu, Anda menggunakan perintah file:

$ file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1, for OpenBSD, statically linked, stripped

Pada contoh di atas, saya memberikan path ke program 'ls', Anda akan mengganti dengan path file Anda.

File skrip akan terlihat seperti:

$ file script.sh
script.sh: Bourne-Again shell script text

File teks acak:

$ file textfile
textfile: ASCII text

File arsip:

$ file rsync-3.0.6.tar.gz
rsync-3.0.6.tar.gz: gzip compressed data, from Unix

Bahkan cukup pintar untuk mengidentifikasi program windows dengan benar, jika Anda kebetulan punya satu program di kotak UNIX Anda:

$ file FMZsetup.exe
FMZsetup.exe: MS-DOS executable (EXE), OS/2 or Windows

Dan ketika tidak bisa mengetahui apa file itu (tetapi bisa membukanya), ia menyebutnya data:

$ file myrandom
myrandom: data
Don Simon
sumber
1
Tidak benar-benar jawaban, tetapi sisi baik- "jawaban"
dlin
11

Eksekusi file di Linux sama sekali tidak terkait dengan nama file atau ekstensi. File apa pun berpotensi dieksekusi, asalkan ditangani oleh binfmtmekanisme kernel (dan bahwa izin yang dapat dieksekusi ditetapkan).

Format yang paling umum untuk dieksekusi adalah ELF , walaupun beberapa kernel dapat dikompilasi untuk mendukung a.outformat lama . (Untuk detail teknis lengkap, binfmt_elf.cadalah tempat mencari.)

Mekanisme umum lainnya adalah sistem "Shebang" , ditangani oleh binfmt_script, yang mencari #!/path/to/interpreterdi awal file.

binfmt_miscmemungkinkan untuk pendaftaran penangan lain, seperti yang didokumentasikan di sini .

Jika Anda ingin melakukan sedikit pemrograman kernel, Anda bahkan dapat menulis sendiri .

Meskipun tidak terkait langsung, fileperintah tersebut harus memberi tahu Anda apakah suatu file dapat dieksekusi ELF atau lainnya.

Konvensi penamaan tidak ada hubungannya dengan status file yang dapat dieksekusi (kecuali ketika digunakan untuk binfmt_miscpendaftaran). Itu hanya konvensi. Biasanya, .exefile yang ditemukan di Linux bisa menjadi aplikasi mono , mendapatkan .exeekstensi sebagai konvensi yang datang dari dunia Windows / .Net.

Aspek lain yang dapat terjadi ketika Anda ingin "menjalankan" file adalah memiliki alat explorer file yang Anda gunakan ekstensi register untuk dapat meluncurkan program yang akan membuka file-file ini. Inilah yang akan terjadi jika Anda mengklik dua kali pada .txt, .tar.gzatau .deb, misalnya: file tidak dapat dieksekusi atau dieksekusi, tetapi apa yang Anda gunakan untuk mengklik dua kali memilih yang dapat dijalankan untuk membuka untuk membuka file-file ini.

Bruno
sumber
Saya pikir ini lebih baik sebagai komentar di sisi salah satu jawaban yang lebih inklusif.
ζ--
@ObsessiveFOSS, tetapi apakah itu layak untuk downvote? Tidak ada yang menyebutkan mono di hadapan istri saya. Tidak ada jawaban di sini yang benar-benar berbicara tentang bagaimana executable Linux benar-benar bekerja (lihat komentar saya tentang binfmt pada jawaban yang diterima).
Bruno
Saya tidak downvote. Saya merasa sebagai suara harus tetap apa adanya.
ζ--
@ObsessiveFOSS, tidak masalah. Saya juga memperhatikan bahwa pertanyaan telah diedit sejak saya menjawabnya, mengubah sedikit maknanya (awalnya saya memahaminya sebagai "Saya memiliki file exe, saya tidak dapat menjalankannya ...") dan membuat jawaban saya lebih sedikit memang relevan.
Bruno
BAIK. Tidak masalah.
ζ--
2

Di windows, file .exe adalah file komputer yang berakhir dengan ekstensi ".exe" yang biasa dikenal sebagai file yang dapat dieksekusi. Ketika seseorang mengklik pada file exe, sebuah rutin internal secara otomatis mengeksekusi kode yang dapat membuat beberapa fungsi bergerak. File exe biasanya digunakan untuk menginstal file di sistem operasi windows.

Selain itu, Anda memiliki file .tar, umumnya dikenal sebagai file terkompresi. Versi Linux, seperti Ubuntu menggunakan fitur-fitur dengan jelas dalam berbagai distribusi perangkat lunak, dengan sebagian besar kode sumber perangkat lunak tersedia dalam format tar.gz. Dari mana Anda dapat mengasumsikan tar itu. gz adalah bentuk format .tar yang diketahui dengan baik, yang digunakan untuk pengarsipan.

Di Ubuntu, di sisi lain, format file deb adalah yang berperilaku lebih seperti file .exe di windows. Ketika Anda membukanya, pusat perangkat lunak menangani kode itu dan menginstal program yang dikandungnya, seperti file yang dapat dieksekusi.

Meskipun Anda masih dapat menginstal perangkat lunak dan paket dari format sumber (tar.gz), format yang paling cocok untuk menginstal perangkat lunak adalah .deb satu. Ambil sebagai contoh Pusat Perangkat Lunak Ubuntu; semua aplikasi yang dikandungnya sebenarnya file .deb. Secara umum, di linux, hampir setiap format file (termasuk .deb dan tar.gz serta file bash .sh) yang sudah dikenal bisa berperilaku sebagai file yang dapat dieksekusi sehingga Anda dapat dapat menginstal paket atau perangkat lunak dengan itu.

dlin
sumber
5
Saya lebih suka membandingkan file .deb pada sistem yang diturunkan dari Debian ke file .msi untuk Penginstal Microsoft ...
MvG
itu betul! :)
dlin
2

Tidak ada yang setara dengan ekstensi file exe di Windows untuk menunjukkan file dapat dieksekusi. Sebaliknya, file yang dapat dieksekusi dapat memiliki ekstensi apa pun, dan biasanya tidak memiliki ekstensi sama sekali .

Linux / Unix menggunakan izin file untuk menunjukkan apakah file dapat dieksekusi. Secara khusus, ada izin eksekusi file yang memberitahu sistem bahwa file ini diizinkan untuk dieksekusi. Namun, tidak adanya izin ini tidak menunjukkan bahwa file tersebut tidak dapat dieksekusi; hanya bahwa pengguna yang relevan tidak diperbolehkan untuk mencoba menjalankannya. Demikian pula keberadaan izin ini tidak selalu menunjukkan bahwa file tersebut dapat dieksekusi.

Linux / Unix memiliki format file biner yang dapat dijalankan yang disebut ELF yang setara dengan format executable biner PE (Windows) atau MZ / NE (DOS) yang biasanya menanggung ekstensi .exe

Namun, jenis file lain dapat dieksekusi, tergantung pada shell. Biasanya, jika Anda mencoba mengeksekusi file yang tidak dikenali oleh sistem sebagai biner yang dapat dieksekusi (misalnya, format ELF), maka file tersebut ditafsirkan oleh penerjemah shell saat ini. Ini memenuhi efek yang sama seperti file batch di Windows atau DOS, kecuali itu lagi, itu bukan ekstensi yang mengidentifikasi jenisnya atau cara menjalankannya.

File Shell secara opsional dapat dimulai dengan hashbang (dua karakter pertama dalam file tersebut #!diikuti oleh jalur ke penerjemah) dalam hal ini daripada menafsirkan sisa file dengan penerjemah shell saat ini, ia dapat meluncurkan shell alternatif atau juru bahasa untuk jalankan file. Dengan demikian, Anda dapat memiliki skrip dalam bahasa apa pun yang ditafsirkan dan masih menjalankannya dengan penerjemah yang benar ketika mencoba menjalankan skrip.

thomasrutter
sumber
Whoah, aku hampir menjawab ini juga. Lihat tanggalnya, posting ini adalah dinosaurus.
Tamsyn Michael
1

File EXE dan DLL adalah file yang dapat dieksekusi portabel. Ini didasarkan pada file unix PE / COFF.

Baca http://en.wikipedia.org/wiki/Portable_Executable untuk informasi lebih lanjut.

Di Ubuntu Anda tidak memiliki ekstensi spesifik untuk file yang dapat dieksekusi. Biasanya ini adalah file yang dinamai sesuai dengan aplikasi yang mereka hubungkan juga.

Faktor penting adalah bahwa file-file ini memiliki bit yang dapat dieksekusi. Jika Anda memiliki terminal warna, Anda akan melihat bahwa ini adalah warna yang berbeda ketika terdaftar menggunakan ls.

Dalam sistem file unix file executable biner umumnya disimpan di lokasi sendiri.

  1. / bin (binari inti)
  2. / sbin (binari sistem)
  3. / usr / bin (binari aplikasi)

sedangkan sumber daya aplikasi lain dapat disimpan di / usr / lib / atau / usr / share /

File deb lebih tepat dikaitkan dengan file msi di windows (yaitu installer paket).

Umumnya file tar.gz atau file bz2 berisi kode sumber dari mana aplikasi dapat dibangun

Merlin
sumber
0

Ubuntu equallant dari file .exe / .com adalah file tanpa ekstensi, biasanya beberapa ekstensi seperti .bin, .run dll ditambahkan ke dalamnya untuk kovinensi

ada beberapa alternatif untuk file .bat (hampir semua file), yang paling populer adalah .sh

.deb hanyalah file biner arsip (mirip dengan .msi di windows) dengan debian standerds

.tar.gz hanyalah format pengarsipan yang umum digunakan di ubuntu

Tachyons
sumber
0

Nama file apa pun dapat diatur agar dapat dieksekusi terlepas dari ekstensi, tetapi file tersebut harus memiliki izin yang sesuai. Izin dapat diberikan dengan mengklik kanan file di Nautilus, mengklik Properties, dan mencentang kotak centang "Izinkan mengeksekusi file sebagai program":

item menu yang menunjukkan Execute: -checkbox- Izinkan file yang dieksekusi sebagai program

Terrari
sumber
Saya ingin menunjukkan bahwa nama file apa pun dapat dibuat dapat dieksekusi, bukan jenis file apa pun seperti yang ditunjukkan oleh frasa "File apa pun". mengedit untuk kejelasan.
Penatua Geek
-3

Paket Debian .deb untuk Linux dan arsip TAR yang dikompres dengan algoritma kompresi GNU zip (gzip) standar; berisi satu atau lebih file terkompresi; biasa digunakan pada sistem operasi Unix untuk mengemas file, program, dan installer.

CATATAN : File TAR.GZ pertama-tama harus didekompresi dan kemudian diperluas menggunakan utilitas TAR. Mereka termasuk tipe file .TAR dan .GZ.

Shanmugasundharam selvadurai
sumber