Nie wiem, jakie jest dokładne rozszerzenie pliku wykonywalnego. Czy to .deb
czy .tar.gz
?
executable
użytkownik54905
źródło
źródło
.exe
rozszerzeniami niepotrzebnymi dla natywnych plików wykonywalnych. Pierwszy wyjaśnia treść/dev
; ten ostatni wynika z uprawnień do wykonywania i polegania na badaniu wnętrza pliku w celu ustalenia, jaki to plik.Odpowiedzi:
W systemie Windows nie ma standardowego rozszerzenia plików, takiego jak plik „.exe”.
W systemie Linux prawie każdy plik może być wykonywalny. Koniec pliku opisuje (ale niekoniecznie) co lub jak plik jest „wykonywany”.
Na przykład skrypt powłoki kończy się na .sh i jest „wykonywany” przez powłokę bash.
W pytaniu pytasz o .deb i .tar.gz Cóż, plik .deb instaluje oprogramowanie w twoim systemie (Uwaga!). A .tar.gz to skompresowany plik jak .zip, który możesz znać z Windows
źródło
.deb
pliki NIE są zazwyczaj plikami wykonywalnymi: nie są to skrypty ELF ani „she-bang” i jest mało prawdopodobne, aby zostały zarejestrowane w binfmt. Nawet przy wykonywalnych uprawnieniach jądro nie wiedziałoby, co z nimi zrobić. Fakt, że eksplorator plików może być zarejestrowany w celu otwierania plików za pomocą określonej aplikacji opartej na rozszerzeniu, nie ma nic wspólnego z ich wykonalnością (pod względem uprawnień do plików lub wykonania formatu binarnego jądra)..deb
jest bardziej jak.msi
plik niż.exe
plik.Podsumowałbym system w następujący sposób:
Każdy plik, który zaczyna się od
#!
(zwany shebang lub hashbang) w pierwszym wierszu, jest tylko skryptem. Ścieżka po shebang to ścieżka do programu (wykonywalnego), który musi przeanalizować skrypt, przy założeniu, że dla pliku ustawiono uprawnienia do wykonywaniachmod a+x filename
.Dlatego odpowiedz na swoje pierwotne pytanie, nie ma rozszerzenia lub rzadko jest to
.elf
lub.bin
.Zostało to Wiki Wiki, więc każdy może dodać wpis.
źródło
Koncepcja pliku wykonywalnego jest inna w systemach Unix / Linux niż Windows.
Windows
Wszystko, co kończy się
.exe
lub.com
staje się plikiem wykonywalnym.Linux / Unix
Każdy plik ma bit wykonywalny, więc każdy plik może zostać wykonany, w przeciwieństwie do systemu Windows. Aby sprawdzić, czy plik jest wykonywalny, możesz sprawdzić jego właściwości (karta Uprawnienia), a nawet zobaczyć je zaznaczone w terminalu (wszystkie są oznaczone *).
Nawet pliki tekstowe (takie jak skrypty powłoki) mogą mieć ustawione bity wykonywalne i działać jako jeden.
źródło
#!/bin/bash
na przykład) na początku zestawów plików, który program wykonuje plik.man magic
, ELFman elf
i linia haszowaniaman execve
)Aby dowiedzieć się, co system operacyjny UNIX uważa za dany typ pliku, użyj polecenia file:
W powyższym przykładzie podaję ścieżkę do programu „ls”, zastąpiłbyś ścieżkę swojego pliku.
Plik skryptu wyglądałby następująco:
Losowy plik tekstowy:
Plik archiwum:
Jest nawet wystarczająco inteligentny, aby poprawnie zidentyfikować program systemu Windows, jeśli zdarzy się, że masz go w swoim systemie UNIX:
A kiedy nie może dowiedzieć się, co to jest plik (ale jest w stanie go otworzyć), nazywa go danymi:
źródło
Wykonanie pliku w systemie Linux nie jest w ogóle powiązane z nazwą lub rozszerzeniem pliku. Każdy plik może zostać potencjalnie wykonany, pod warunkiem, że jest on obsługiwany przez
binfmt
mechanizm jądra (i ustawione są jego uprawnienia do wykonywania).Najpopularniejszym formatem pliku wykonywalnego jest ELF , chociaż niektóre jądra można skompilować w celu obsługi starego
a.out
formatu. (Aby uzyskać szczegółowe informacje techniczne,binfmt_elf.c
gdzie szukać).Innym powszechnym mechanizmem jest obsługiwany przez system „Shebang”
binfmt_script
, który szuka#!/path/to/interpreter
na początku pliku.binfmt_misc
pozwala na rejestrację innych osób zajmujących się obsługą, jak tu udokumentowano .Jeśli masz ochotę na trochę programowania jądra, możesz nawet napisać własny .
Chociaż nie jest to bezpośrednio powiązane,
file
polecenie powinno powiedzieć, czy plik jest plikiem wykonywalnym ELF, czy czymś innym.Konwencja nazewnictwa nie ma nic wspólnego ze statusem pliku (z wyjątkiem sytuacji, gdy jest on używany do
binfmt_misc
rejestracji). To tylko konwencje. Zazwyczaj.exe
plik znaleziony w systemie Linux może być aplikacją mono , uzyskując.exe
rozszerzenie jako konwencję pochodzącą ze świata Windows / .Net.Innym aspektem, który może się zdarzyć, gdy chcesz „uruchomić” plik, jest posiadanie narzędzia eksploratora plików, którego używasz rozszerzeń rejestrów, aby móc uruchomić program, który otworzy te pliki. To jest to, co by się stało, jeśli podwójne kliknięcie na
.txt
,.tar.gz
lub.deb
, na przykład: pliki wykonywalne, ani nie są wykonywane, ale to, czego używasz dwukrotne kliknięcie wybiera, które wykonywalny do uruchomienia, aby otworzyć te pliki.źródło
W systemie Windows plik .exe to plik komputerowy, który kończy się rozszerzeniem „.exe” powszechnie znanym jako plik wykonywalny. Po kliknięciu pliku exe wbudowana procedura automatycznie wykonuje kod, który może uruchomić kilka funkcji. Pliki exe są powszechnie używane do instalowania plików w systemie operacyjnym Windows.
Dodatkowo masz pliki .tar, powszechnie znane jako pliki skompresowane. Wersje Linux, takie jak Ubuntu, wykorzystują funkcje w różnych dystrybucjach oprogramowania, a większość kodu źródłowego oprogramowania jest dostępna w formacie tar.gz. Od tego możesz założyć tę tar. gz jest formą dobrze znanego formatu .tar, który służy do archiwizacji.
Z drugiej strony w Ubuntu format pliku .deb zachowuje się bardziej jak plik .exe w systemie Windows. Po otwarciu centrum oprogramowania obsługuje kod i instaluje program, który zawiera, na przykład plik wykonywalny.
Mimo że nadal możesz instalować oprogramowanie i pakiety z formatu źródłowego (tar.gz), najlepszym formatem do instalowania oprogramowania jest .deb. Weź jako przykład Centrum oprogramowania Ubuntu; wszystkie zawarte w nim aplikacje to w rzeczywistości pliki .deb. Ogólnie w systemie Linux prawie każdy format pliku (w tym .deb i tar.gz oraz dobrze znane pliki bash .sh) mogą zachowywać się jak pliki wykonywalne, dzięki czemu dzięki temu można instalować pakiety lub oprogramowanie.
źródło
W systemie Windows nie ma odpowiednika rozszerzenia pliku exe wskazującego, że plik jest wykonywalny. Zamiast tego pliki wykonywalne mogą mieć dowolne rozszerzenie i zwykle nie mają w ogóle rozszerzenia .
Linux / Unix używa uprawnień do plików, aby wskazać, czy plik może zostać wykonany. W szczególności istnieje uprawnienie do wykonywania pliku, które informuje system, że ten plik może zostać wykonany. Jednak brak tego uprawnienia nie oznacza, że plik nie jest plikiem wykonywalnym; tylko, że odpowiedni użytkownik nie może spróbować go wykonać. Podobnie obecność tego uprawnienia nie zawsze oznacza, że plik jest prawidłowym plikiem wykonywalnym.
Linux / Unix ma binarny format pliku wykonywalnego o nazwie ELF, który jest równoważny binarnym formatom plików wykonywalnych PE (Windows) lub MZ / NE (DOS), które zwykle mają rozszerzenie .exe
Jednak inne typy plików mogą być wykonywalne, w zależności od powłoki. Zazwyczaj, jeśli próbujesz wykonać plik, którego system nie rozpoznaje jako binarny plik wykonywalny (np. Format ELF), wówczas jest on interpretowany przez bieżący interpreter powłoki. Spełnia to ten sam efekt, co pliki wsadowe w systemie Windows lub DOS, z tym wyjątkiem, że to nie rozszerzenie identyfikuje jego typ ani sposób jego wykonania.
Pliki powłoki mogą opcjonalnie zaczynać się hashbangiem (po pierwszych dwóch znakach w pliku
#!
następuje ścieżka do interpretera), w którym to przypadku zamiast interpretować resztę pliku za pomocą bieżącego interpretera powłoki, może uruchomić alternatywną powłokę lub interpreter w celu uruchom plik. Tak więc możesz mieć skrypt w dowolnym tłumaczonym języku i nadal uruchamiać go z poprawnym tłumaczem podczas próby wykonania skryptu.źródło
Pliki EXE i DLL są przenośnymi plikami wykonywalnymi. Są one oparte na plikach unix PE / COFF.
Przeczytaj http://en.wikipedia.org/wiki/Portable_Executable, aby uzyskać więcej informacji.
W Ubuntu nie masz określonego rozszerzenia pliku wykonywalnego. Są to zazwyczaj pliki, które są nazwane na podstawie powiązanej z nimi aplikacji.
Ważnym czynnikiem jest to, że pliki te mają ustawiony bit wykonywalny. Jeśli masz kolorowy terminal, zauważysz, że są one w innym kolorze, gdy są wymienione za pomocą
ls
.W systemie plików unix binarne pliki wykonywalne są zazwyczaj przechowywane w ich własnej lokalizacji.
podczas gdy inne zasoby aplikacji mogą być przechowywane w / usr / lib / lub / usr / share /
Plik deb bardziej poprawnie odpowiada plikowi MSI w systemie Windows (tj. Instalatorowi pakietów).
Zasadniczo pliki tar.gz lub bz2 zawierają kod źródłowy, z którego można zbudować aplikację
źródło
Ubuntu equallant pliku .exe / .com to plik bez rozszerzeń, zwykle niektóre rozszerzenia, takie jak .bin, .run itp. Są do niego dodawane dla wygody
istnieje kilka alternatyw dla pliku .bat (prawie wszystkie pliki), najbardziej popularnym jest .sh
.deb to tylko archiwalne pliki binarne (podobne do .msi w systemie Windows) ze standardami Debiana
.tar.gz to tylko popularny format archiwizacji używany w Ubuntu
źródło
Każda nazwa pliku może być ustawiona na wykonywalną niezależnie od rozszerzenia, ale plik musi mieć odpowiednie uprawnienia. Zezwolenie można uzyskać, klikając prawym przyciskiem myszy plik w Nautilusie, klikając Właściwości i zaznaczając pole wyboru „Zezwalaj na uruchamianie pliku jako programu”:
źródło
.deb Pakiet Debian dla Linuksa i archiwum TAR skompresowane standardowym algorytmem kompresji GNU zip (gzip); zawiera jeden lub więcej skompresowanych plików; powszechnie używane w systemach operacyjnych Unix do pakowania plików, programów i instalatorów.
UWAGA : Pliki TAR.GZ muszą najpierw zostać zdekompresowane, a następnie rozszerzone za pomocą narzędzia TAR. Obejmują one zarówno typy plików .TAR, jak i .GZ.
źródło