web-dev-qa-db-fra.com

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

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

44
user54905

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!). Et le fichier .tar.gz est un fichier compressé ressemblant à un fichier .Zip que vous pourriez connaître. Les fenêtres.

38
rechengehirn

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, .vbs           | Linux is capable of running any file that it has an interpreter for. 
                   |                      |   A line at the top of the file called the Shebang specifies what interpreter to run the file with. 
                   |                      |   Windows only really runs .bat files in this way.

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.

Par conséquent, répondez à votre question initiale, il n’ya pas d’extension, ou rarement, il s’agit de .elf ou .bin.

Ceci a été créé dans le wiki de la communauté, ainsi tout le monde peut ajouter une entrée.

73
hexafraction

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

Les fenêtres

Tout ce qui se termine par .exe ou .com devient 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 Shell) peuvent avoir leurs bits exécutables et être exécutés comme tel.

23
Nemo

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
16
Don Simon

L'exécution de fichier sous Linux n'est pas du tout liée au nom ou à l'extension du fichier. Tout fichier peut éventuellement être exécuté, à condition qu'il soit géré par le mécanisme binfmtdu 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 format a.out. (Pour tous les détails techniques, binfmt_elf.c est l'endroit où chercher.)

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

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

Si vous avez envie de faire un peu de programmation du noyau, vous pouvez même écrire votre propre .

Bien que cela ne soit pas directement lié, la commande filedevrait vous indiquer si un fichier est un exécutable ELF ou quelque chose d'autre.

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'enregistrement binfmt_misc). Ce ne sont que des conventions. Généralement, un fichier .exe trouvé sur Linux peut être une application mono , obtenant l'extension .exe sous forme de convention provenant du monde Windows/.Net.

L’autre aspect qui peut survenir lorsque vous souhaitez "exécuter" un fichier est de disposer de l’explorateur de fichiers que vous utilisez, utilisez des extensions de registre pour pouvoir lancer un programme qui ouvrira ces fichiers. C’est ce qui se produirait si vous double-cliquez sur un .txt, .tar.gz ou .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 ouvrir pour ouvrir ces fichiers.

11
Bruno

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 ont généralement pas d'extension du tout.

Linux/Unix utilise permissions sur les fichiers pour indiquer si un fichier peut être exécuté. Plus précisément, il existe une autorisation de fichier execute qui indique au système que ce fichier est autorisé à être exécuté. 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, selon le shell. En règle générale, 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 Shell actuel. Cela produit le même effet que des fichiers de commandes sous Windows ou DOS, sauf que, là encore, ce n'est pas l'extension qui identifie son type ni comment l'exécuter.

Les fichiers shell peuvent éventuellement commencer par un hashbang (les deux premiers caractères du fichier sont #! suivi 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 Shell en cours, il peut lancer un autre interpréteur de commandes ou interpréteur pour exécuter le fichier. Ainsi, vous pouvez avoir un script dans n’importe quel langage interprété et le faire exécuter avec l’interprète correct lorsque vous essayez d’exécuter le script.

2
thomasrutter

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 du 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 de 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 fichiers bash bien connus .sh) peuvent se comporter comme des fichiers exécutables. pouvez installer des packages ou des logiciels avec cela.

2
dlin

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 lorsqu'ils sont répertoriés à l'aide de lsname__.

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.

1
Merlin

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

0
Tachyons

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":

menu item showing Execute: -checkbox- Allow executing file as program

0
Terrarian