Quel est l'équivalent d'un "fichier exe"?

47

Je ne sais pas quelle est l'extension exacte du fichier exécutable. Est-ce .debou .tar.gz?

utilisateur54905
la source
13
Ce n’est pas une réponse, mais je voudrais ajouter TOUT dans LINUX est un FICHIER . Il n’a donc aucune importance d’avoir des extensions comme .exe.
Atenz
15
@tijybba La philosophie de conception "tout est un fichier" est totalement indépendante du fait que les .exeextensions ne sont pas nécessaires pour les exécutables natifs. Le premier explique le contenu de /dev; ce dernier est dû aux autorisations d' exécution et à l'examen de l'intérieur d'un fichier pour déterminer le type de fichier.
Eliah Kagan
@ Eliah Kagan - Il ne s'agissait que d'une information de base, car l'extension Windows est nécessaire à l'exécution, ainsi sous Linux, ce n'est pas le cas, en ce qui concerne les autorisations exécutables , il ne nécessite que peu plus de savoir-faire de Sudo - Accès utilisateur et préoccupations de sécurité sous-jacentes , ce que j’imaginais que quelqu'un clarifierait sa réponse dans sa dernière partie, si nécessaire, c’est pourquoi je l’a posté comme commentaire et non comme réponse.
Atenz
4
@tijybba Mais "tout" être un fichier n'a vraiment rien à voir avec le sujet de cette question, n'est-ce pas?
Eliah Kagan
2
Je suppose que j'ai mal interprété cette partie en question, qui dit: "Qu'est-ce qu'un fichier exe est dans Ubuntu?", J'ai considéré Executable , mais maintenant, avec votre aide avide, il semble que cela signifie "qu'est-ce qu'un fichier .exe est dans Ubuntu?". Si cela est tout à fait inapproprié, dites-le-moi que je serais heureux de le supprimer (les erreurs sont d'excellentes expériences d'apprentissage: D).
Atenz

Réponses:

42

Il n'y a pas d'extension de fichier standard telle qu'un fichier ".exe" dans Windows.

Sous Linux, presque tous les fichiers peuvent être exécutables. La fin du fichier décrit simplement (mais pas nécessairement) quoi ou comment un fichier est "exécuté".

Par exemple, un script shell se termine par .sh et est "exécuté" via le shell bash.

Dans votre question, vous demandez les fichiers .deb et .tar.gz. Bien, le fichier .deb installe un logiciel sur votre système (soyez prudent!). Le fichier .tar.gz est un fichier compressé ressemblant à un fichier .zip que vous pourriez connaître. Les fenêtres.

rechengehirn
la source
1
Donc, .deb est un fichier .exe!
user54905
13
@ Nick, les .debfichiers ne sont généralement pas des exécutables: ce ne sont ni des scripts ELF ni des scripts "elle-bang" et il est peu probable qu'ils soient enregistrés avec binfmt. Même avec des autorisations exécutables, le noyau ne saurait pas quoi en faire. Le fait que votre explorateur de fichiers puisse être enregistré pour ouvrir des fichiers avec une application particulière basée sur l'extension n'a rien à voir avec le fait qu'ils soient exécutables (en termes d'autorisation de fichier ou d'exécution du format binaire du noyau).
Bruno
4
Le fichier .deb ressemble également davantage à un fichier .zip qu’à un fichier .exe. Le fait est que .deb ne s’exécute pas , il est extrait, interprété et installé par une autre application.
Rafał Cieślak
5
Cette autre application est généralement le Centre de logiciel, qui sert également d’installateur. Linux est moins dépendant des extensions que Windows et décide donc de l'exécutabilité en fonction des autorisations plutôt que de l'extension.
Tyjkenn
33
.debressemble plus à un .msifichier qu’à un .exefichier.
Détly
79

Je résumerais le système de la manière suivante:

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

Tout fichier commençant par #!(appelé shebang ou hashbang) sur la première ligne est simplement un script. Le chemin après le shebang est un chemin d'accès au programme (exécutable) qui doit analyser le script, en supposant que l'autorisation d'exécution a été définie sur le fichier avec chmod a+x filename.

Donc, répondez à votre question initiale, il n’ya pas de prolongation, ou rarement, c’est .elfou .bin.

Cela a été fait Communauté Wiki, donc tout le monde peut ajouter une entrée.

ζ--
la source
2
Je n'ai jamais vu l'extension .elf mais j'ai vu l'extension .bin assez souvent.
Calmarius
1
Alors que les autres réponses mettent l'accent sur le fait que «n'importe quel» fichier peut être un exécutable, cette réponse frappe vraiment au clou, alors que dire que «n'importe quoi» peut être un exécutable n'est pas vraiment informatif ou vrai, mais plutôt exceptionnel. Je pourrais renommer n'importe quel fichier sous windows en .exe, et il essaiera de l'exécuter, mais cela ne fonctionnera pas nécessairement, sous Linux, c'est pareil, si ce n'est pas censé être exécuté, ça ne fonctionnera pas ... Mon problème plusieurs fois, télécharge un paquet et ne comprend pas vraiment par quoi commencer, mais bien sûr, RTFM.
TrySpace
Vous devez ajouter l'extension .bin (en tant qu'équivalent Windows à .exe)
Dani-Br
@ Dani-Br Ceci est un post de wiki de communauté, ce qui signifie que les autres utilisateurs sont invités à le modifier, et que vous avez assez de réputation pour le faire (à 101). J'ai ajouté .bin pour l'instant.
ζ--
Ce n'est pas une extension, mais il m'a été utile de savoir que le format "PE" sous Windows est l'équivalent du format "ELF" sous Linux
Accountant م
23

Le concept d'un exécutable est différent sous unix / linux de Windows.

les fenêtres

Tout ce qui se termine .exeou .comdevient un fichier exécutable.

Linux / Unix

Chaque fichier a un bit exécutable, donc tout fichier peut être exécuté, contrairement à Windows. Pour voir si un fichier est exécutable, vous pouvez vérifier ses propriétés (onglet Autorisations), ou même les voir marqués dans le terminal (ils sont tous marqués d'un *).

Même les fichiers texte (comme les scripts de shell) peuvent avoir leurs bits exécutables et être exécutés comme tel.

Nemo
la source
4
Cela vaut également la peine d'ajouter que dans le cas de fichiers texte, le shebang ( #!/bin/bashpar exemple) situé au début des ensembles de fichiers, quel programme exécute le fichier.
jackweirdy
Des bits exécutables distincts existent pour l'utilisateur, le groupe et autres. L'utilisation de ces bits peut limiter le nombre de personnes pouvant exécuter le programme. Des bits supplémentaires existent pour SUID et SGID afin que le programme s'exécute en tant qu'utilisateur ou groupe propriétaire du fichier.
BillThor
Il y a quelques inexactitudes ci-dessus: 2) "chaque fichier a un bit exécutable": il y a trois bits exécutables (propriétaire, groupe et autres), donc on peut se permettre, mais pas les autres, d'exécuter un fichier. Il existe également un bit setuid pour "execute-as-owner" et setgid "execute-as-group". 2) "n'importe quel fichier peut être exécuté": pas du tout. les bits d'autorisation sont une condition requise mais insuffisante pour exécuter un fichier avec succès. Un échec immédiat se produira, par exemple, si le fichier ne peut pas être chargé et exécuté (Réf: numéros de fichier man magic, ELF man elfet ligne de hachage man execve)
arielf
16

Pour savoir ce que le système d'exploitation UNIX considère comme un type de fichier particulier, utilisez la commande file:

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

Dans l'exemple ci-dessus, je donne le chemin du programme 'ls', que vous remplaceriez par le chemin de votre fichier.

Un fichier de script ressemblerait à ceci:

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

Un fichier texte aléatoire:

$ file textfile
textfile: ASCII text

Un fichier d'archive:

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

Il est même assez intelligent pour identifier correctement un programme Windows, si vous en aviez un sur votre machine UNIX:

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

Et quand il ne peut pas comprendre ce qu'est un fichier (mais est capable de l'ouvrir), il l'appelle data:

$ file myrandom
myrandom: data
Don Simon
la source
1
Pas vraiment une réponse, mais bon côté "réponse"
dlin
11

L'exécution de fichiers sous Linux n'est pas du tout liée au nom ou à l'extension du fichier. Tout fichier peut potentiellement être exécuté, à condition qu'il soit géré par le binfmtmécanisme du noyau (et que ses autorisations exécutables soient définies).

Le format le plus courant pour les exécutables est ELF , bien que certains noyaux puissent être compilés pour prendre en charge l’ancien a.outformat. (Pour plus de détails techniques, binfmt_elf.cc'est où chercher.)

Un autre mécanisme commun est le système "Shebang" , géré par binfmt_script, qui cherche #!/path/to/interpreterau début du fichier.

binfmt_miscpermet l'enregistrement d'autres gestionnaires, comme documenté ici .

Si vous avez envie de programmer un peu le noyau, vous pouvez même écrire le vôtre .

Bien que cela ne soit pas directement lié, la filecommande devrait vous indiquer si un fichier est un exécutable ELF ou autre chose.

La convention de dénomination n'a rien à voir avec le statut d'exécutable d'un fichier (sauf lorsqu'il est utilisé pour l' binfmt_miscenregistrement). Ce ne sont que des conventions. En règle générale, un .exefichier sous Linux peut être une application mono et obtenir l' .exeextension comme une convention provenant du monde Windows / .Net.

L’autre aspect qui peut arriver lorsque vous souhaitez "exécuter" un fichier est de disposer de l’explorateur de fichiers avec lequel vous utilisez les extensions de registre afin de pouvoir lancer un programme permettant d’ouvrir ces fichiers. C’est ce qui se produirait si vous double-cliquez sur un .txt, .tar.gzou .deb, par exemple: les fichiers ne sont ni exécutables, ni exécutés, mais ce que vous utilisez pour double-cliquer permet de choisir quel exécutable lancer pour ouvrir ces fichiers.

Bruno
la source
Je pense que cela vaut mieux comme commentaire de l’une des réponses les plus inclusives.
ζ--
@ObsessiveFOSS, mais mérite-t-il un vote négatif? Personne n'avait mentionné mono avant ma réponse. Pas de réponse ici parle vraiment de la façon dont les exécutables Linux fonctionnent vraiment (voir mon commentaire à propos de binfmt sur la réponse acceptée) de toute façon.
Bruno
Je n'ai pas voté. Je pensais que le vote devrait rester tel quel.
ζ--
@ObsessiveFOSS, pas de problème. J'ai aussi remarqué que la question avait été modifiée depuis que j'y ai répondu, en modifiant quelque peu sa signification (je l'ai comprise au départ comme "j'ai un fichier exe, je ne peux pas l'exécuter ...") et en diminuant ma réponse pertinent en effet.
Bruno
D'ACCORD. Aucun problème.
ζ--
2

Dans Windows, un fichier .exe est un fichier informatique qui se termine par l'extension ".exe", couramment appelé fichier exécutable. Quand on clique sur un fichier exe, une routine intégrée exécute automatiquement le code qui peut activer plusieurs fonctions. Les fichiers EXE sont couramment utilisés pour installer des fichiers dans le système d'exploitation Windows.

En outre, vous disposez de fichiers .tar, généralement appelés fichiers compressés. Les versions Linux, telles qu'Ubuntu, utilisent les fonctionnalités de manière évidente dans diverses distributions logicielles, la plupart du code source du logiciel étant disponible au format tar.gz. Depuis lequel vous pouvez utiliser ce fichier tar. gz est une forme du format bien connu .tar, utilisé pour l'archivage.

Dans Ubuntu, en revanche, le format de fichier .deb est celui qui se comporte le plus comme le fichier .exe dans Windows. Lorsque vous l'ouvrez, le centre logiciel gère son code et installe le programme qu'il contient, tel qu'un fichier exécutable.

Même si vous pouvez toujours installer des logiciels et des packages à partir du format source (tar.gz), le format le mieux adapté pour l’installation des logiciels est celui .deb. Prenez comme exemple le Centre de logiciel Ubuntu; toutes les applications qu’il contient sont en fait des fichiers .deb. En général, sous Linux, presque tous les formats de fichiers (y compris les fichiers .deb et tar.gz, ainsi que les très connus fichiers bash .sh) peuvent se comporter comme des fichiers exécutables. pouvez installer des packages ou des logiciels avec cela.

dlin
la source
5
Je préférerais comparer les fichiers .deb des systèmes dérivés de Debian aux fichiers .msi de Microsoft Installer…
MvG
c'est correct! :)
mardi
2

Il n'y a pas d'équivalent à l' extension de fichier exe dans Windows pour indiquer qu'un fichier est exécutable. Au lieu de cela, les fichiers exécutables peuvent avoir n'importe quelle extension et n'ont généralement aucune extension .

Linux / Unix utilise les autorisations de fichier pour indiquer si un fichier peut être exécuté. Plus précisément, une autorisation d' exécution de fichier indique au système que l' exécution de ce fichier est autorisée . Cependant, l'absence de cette autorisation n'indique pas que le fichier n'est pas un fichier exécutable. simplement que l'utilisateur concerné n'est pas autorisé à essayer de l'exécuter. De même, la présence de cette autorisation n'indique pas toujours que le fichier est un exécutable valide.

Linux / Unix a un format de fichier exécutable binaire appelé ELF, équivalent aux formats exécutables binaires PE (Windows) ou MZ / NE (DOS) portant généralement l'extension .exe.

Cependant, d'autres types de fichiers peuvent être exécutables, en fonction du shell. Généralement, si vous essayez d'exécuter un fichier que le système ne reconnaît pas comme un exécutable binaire (par exemple, le format ELF), il est interprété par l'interpréteur de shell actuel. Cela produit le même effet que les fichiers de commandes sous Windows ou DOS, sauf que, là encore, ce n'est pas l'extension qui identifie son type ni la façon de l'exécuter.

Les fichiers shell peuvent éventuellement commencer par un hashbang (les deux premiers caractères du fichier sont #!suivis d'un chemin d'accès à un interprète), auquel cas, plutôt que d'interpréter le reste du fichier avec l'interpréteur de shell actuel, il peut lancer un interpréteur de commandes alternatif exécuter le fichier. Ainsi, vous pouvez avoir un script dans n’importe quel langage interprété et le faire exécuter avec le bon interprète lorsque vous essayez d’exécuter le script.

thomasrutter
la source
Whoah, j'ai presque répondu à cela aussi. Regardez la date, ce post est un dinosaure.
Tamsyn Michael
1

Les fichiers EXE et DLL sont des fichiers exécutables portables. Celles-ci sont basées sur les fichiers unix PE / COFF.

Lisez http://en.wikipedia.org/wiki/Portable_Executable pour plus d'informations.

Dans Ubuntu, vous n’avez pas d’extension spécifique pour un fichier exécutable. Ce sont généralement des fichiers nommés d'après l'application à laquelle ils se rapportent.

Le facteur important est que ces fichiers ont le bit exécutable défini. Si vous avez un terminal couleur, vous remarquerez qu'il s'agit d'une couleur différente lors de l'utilisation de la liste ls.

Dans le système de fichiers Unix, les fichiers exécutables binaires sont généralement stockés dans leur propre emplacement.

  1. / bin (binaires principaux)
  2. / sbin (binaires du système)
  3. / usr / bin (fichiers binaires d'application)

alors que d’autres ressources d’application peuvent être stockées dans / usr / lib / ou / usr / share /

Un fichier deb correspond plus correctement à un fichier msi dans Windows (c'est-à-dire un programme d'installation de paquet).

Généralement, les fichiers tar.gz ou bz2 contiennent le code source à partir duquel une application peut être construite.

Merlin
la source
0

Ubuntu est un fichier sans extension. En général, certaines extensions telles que .bin, .run, etc. y sont ajoutées pour des raisons de confidentialité.

Il existe plusieurs alternatives pour le fichier .bat (presque tous les fichiers), la plus populaire est .sh

.deb est juste une archive de fichiers binaires (similaire à .msi dans Windows) avec les standards Debian

.tar.gz est juste un format d’archivage commun utilisé dans Ubuntu

Tachyons
la source
0

N'importe quel nom de fichier peut être défini sur exécutable indépendamment de son extension, mais le fichier doit avoir les permissions appropriées. L'autorisation peut être donnée en cliquant avec le bouton droit de la souris sur le fichier dans Nautilus, en cliquant sur Propriétés et en cochant la case "Autoriser l'exécution du fichier en tant que programme":

élément de menu affichant Execute: -checkbox- Autoriser l'exécution du fichier en tant que programme

Terrarian
la source
Je tiens à souligner que tout nom de fichier peut être rendu exécutable, pas n'importe quel type de fichier comme l'indique l'expression "N'importe quel fichier". édition pour plus de clarté.
Elder Geek
-3

.deb Paquet Debian pour Linux et les archives TAR compressé avec l’algorithme de compression GNU zip (gzip) standard; contient un ou plusieurs fichiers compressés; couramment utilisé sur les systèmes d'exploitation Unix pour conditionner les fichiers, les programmes et les programmes d'installation.

REMARQUE : Les fichiers TAR.GZ doivent d'abord être décompressés, puis développés à l'aide d'un utilitaire TAR. Ils incluent à la fois les types de fichiers .TAR et .GZ.

Shanmugasundharam selvadurai
la source