Saya tidak tahu apa sebenarnya ekstensi file yang dapat dieksekusi itu. Apakah itu .deb
atau .tar.gz
?
executable
pengguna54905
sumber
sumber
.exe
ekstensi 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.Jawaban:
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.
sumber
.deb
file 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)..deb
lebih seperti.msi
file daripada.exe
file.Saya akan meringkas sistem dengan cara berikut:
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 denganchmod a+x filename
.Karena itu, jawab pertanyaan awal Anda, tidak ada ekstensi, atau jarang, itu
.elf
atau.bin
.Ini telah dibuat Wiki Komunitas, sehingga siapa pun dapat menambahkan entri.
sumber
Konsep yang dapat dieksekusi berbeda di unix / linux dari Windows.
Windows
Apa pun yang berakhir
.exe
atau.com
menjadi 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.
sumber
#!/bin/bash
misalnya) pada awal set file program mana yang mengeksekusi file.man magic
, ELFman elf
, dan hash-bang lineman execve
)Untuk mengetahui apa yang menurut sistem operasi UNIX tipe file tertentu, Anda menggunakan perintah file:
Pada contoh di atas, saya memberikan path ke program 'ls', Anda akan mengganti dengan path file Anda.
File skrip akan terlihat seperti:
File teks acak:
File arsip:
Bahkan cukup pintar untuk mengidentifikasi program windows dengan benar, jika Anda kebetulan punya satu program di kotak UNIX Anda:
Dan ketika tidak bisa mengetahui apa file itu (tetapi bisa membukanya), ia menyebutnya data:
sumber
Eksekusi file di Linux sama sekali tidak terkait dengan nama file atau ekstensi. File apa pun berpotensi dieksekusi, asalkan ditangani oleh
binfmt
mekanisme kernel (dan bahwa izin yang dapat dieksekusi ditetapkan).Format yang paling umum untuk dieksekusi adalah ELF , walaupun beberapa kernel dapat dikompilasi untuk mendukung
a.out
format lama . (Untuk detail teknis lengkap,binfmt_elf.c
adalah tempat mencari.)Mekanisme umum lainnya adalah sistem "Shebang" , ditangani oleh
binfmt_script
, yang mencari#!/path/to/interpreter
di awal file.binfmt_misc
memungkinkan 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,
file
perintah 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_misc
pendaftaran). Itu hanya konvensi. Biasanya,.exe
file yang ditemukan di Linux bisa menjadi aplikasi mono , mendapatkan.exe
ekstensi 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.gz
atau.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.sumber
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.
sumber
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.sumber
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.
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
sumber
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
sumber
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":
sumber
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.
sumber