Maison Problème commun Qu'est-ce qu'un fichier exécutable Linux ?

Qu'est-ce qu'un fichier exécutable Linux ?

Mar 09, 2023 am 10:00 AM
linux 可执行文件

Sous Linux, un fichier exécutable signifie que le fichier peut être exécuté et que le fichier a les autorisations "x" ; le fichier exécutable peut être un fichier de code (fichier script) ou un fichier binaire. Il existe deux manières d'exécuter un fichier : 1. Utilisez l'interpréteur pour exécuter le fichier directement ; 2. Utilisez « ./ » pour exécuter le fichier, et la syntaxe est « ./ nom de fichier ».

Qu'est-ce qu'un fichier exécutable Linux ?

L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.

Qu'est-ce qu'un fichier exécutable

Un fichier exécutable signifie que ce fichier peut être exécuté. Ce fichier peut être un fichier de code ou un fichier binaire

Il n'y a que des fichiers et des répertoires dans le système de fichiers Linux (Tout. est un fichier).

Sous Linux, il existe deux manières principales d'exécuter un fichier : bash test.sh ou ./test.sh.bash test.sh或者./test.sh.

这个test.sh就被叫做可执行文件.

可执行文件分为两种: 一种是常见的二进制文件,一种是脚本文件.前者如常用的ls,mkdir命令等都是二进制的文件,后者常见的有shell脚本,或者Python脚本这些依赖于解释器执行的文件.

通过命令file可以查看一个文件的类型,如二进制文件会显示:

Quest-ce quun fichier exécutable Linux ?

而脚本文件则输出:
Quest-ce quun fichier exécutable Linux ?

可执行文件的区别

在上面的两个脚本文件中可以看到,输出的内容是不同的.一个被识别为了shell script一个则认为就是普通的text文件.但是两个文件都是可执行的:

Quest-ce quun fichier exécutable Linux ?

如图:两个文件运行后都会输出hello world!.

此处使用了两种不同的运行方式,第一种直接指定一个可执行文件./hello.sh,如果使用这种方式运行的话,脚本必须满足以下两个要求:

  • 文件有"x"权限

  • 文件如果不是二进制类型文件,那么在开头第一行必须指定了他的解释器

第一个就是指的Linux文件系统中的"rwx" r为只读,w代表可写,而"x"则意味着这个文件可执行.

这里判断这个文件可执行和"鸭子类型"有些类似,即只要一个动物会嘎嘎叫我就认为是鸭子.此时哪怕走过来一条狗嘎嘎叫了两声,那么也认为他是一个鸭子.
换算过去.不管文件类型是什么,只要这个文件具备"X"权限,那么系统就认为他是一个可执行文件.

示例: 新建一个text类型文件,内容为hello world!,然后添加"x"执行权限.

Quest-ce quun fichier exécutable Linux ?

可以看到,查看文件类型时,他和上面Python脚本打印内容一致,认为这是个txt文件.

随后给他加上了执行权限,然后’./'运行,提示"未找到命令".

此处,系统把他当成了一个shell脚本去执行,依次从中读取内容,然后交给"/bin/bash"解释器去执行.

接下来如法炮制,将Python脚本也变成一个系统认可的可执行文件

Quest-ce quun fichier exécutable Linux ?

此时,你也能用./去运行他了.

./ 表示什么?

一个文件运行有两种方式,第一种是用他的解释器直接去运行它,如:

Quest-ce quun fichier exécutable Linux ?

每个解释器只能运行对应自己语法的脚本,如果用了别的解释器那么则会抛出错误,如Python解释器无法运行shell脚本.

接下来说./,点在Linux系统中表示"当前目录",而"/“就是个普通的路径分隔符,组合在一起无非就是个相对路径,如:

Quest-ce quun fichier exécutable Linux ?

所以在执行一个系统认可的可执行文件的时候,./

Cetest.sh est appelé un fichier exécutable.

7-Quest-ce quun fichier exécutable Linux ?Les fichiers exécutables sont divisés en deux types : l'un est un fichier binaire commun et l'autre est un fichier de script. Le premier est tel que le couramment utilisé. Les commandes ls code>, <code>mkdir, etc. sont tous des fichiers binaires. Les scripts shell ou scripts Python couramment utilisés sont des fichiers qui dépendent de l'exécution de l'interpréteur

🎜Grâce à la commande file. Vous pouvez vérifier le type d'un fichier. Par exemple, un fichier binaire sera affiché : 🎜🎜Quest-ce quun fichier exécutable Linux ?🎜🎜Et le fichier de script affiche :
Quest-ce quun fichier exécutable Linux ?🎜🎜🎜🎜La différence entre les fichiers exécutables🎜🎜🎜 est visible dans les deux fichiers de script ci-dessus, le contenu de sortie est différent. L'un est reconnu comme shell script et l'autre est considéré comme un fichier texte ordinaire. Mais les deux fichiers sont exécutables : 🎜🎜Quest-ce quun fichier exécutable Linux ?🎜🎜Comme le montre la figure : les deux les fichiers seront affichés après avoir exécuté hello world!.🎜🎜Deux méthodes d'exécution différentes sont utilisées ici La première spécifie directement un fichier exécutable ./hello.sh. cette méthode pour exécuter Si tel est le cas, le script doit répondre aux deux exigences suivantes : 🎜
  • 🎜Le fichier a les autorisations "x"🎜
  • 🎜Si le fichier n'est pas un fichier de type binaire, alors son interpréteur doit être spécifié dans la première ligne au début🎜
🎜Le premier fait référence à "rwx" dans le système de fichiers Linux r. signifie lecture seule, w signifie écriture et "x" signifie que ce fichier est exécutable 🎜🎜🎜Le jugement selon lequel ce fichier est exécutable est quelque peu similaire au "type canard", c'est-à-dire tant qu'un animal cancane, Je pense que c'est un canard. Même si un chien vient et cancane deux fois, alors il est considéré comme un canard.
En d'autres termes, quel que soit le type de fichier, tant que le fichier dispose des autorisations "X". , le système le considérera comme un fichier exécutable. 🎜🎜🎜Exemple : Créez un nouveau fichier de type texte avec le contenu hello world!, puis ajoutez l'autorisation d'exécution "x".🎜🎜Quest-ce quun fichier exécutable Linux ?🎜🎜Vous pouvez le voir en visualisant le type de fichier, il est cohérent avec le contenu imprimé par le script Python ci-dessus, pensant qu'il s'agit d'un fichier txt 🎜🎜Puis il a ajouté les autorisations d'exécution, puis a exécuté './', demandant "Commande introuvable 🎜🎜Ici". , le système le traite comme un script shell à exécuter, en lit le contenu à son tour, puis le transmet à l'interpréteur "/bin/bash" pour qu'il l'exécute.🎜🎜Suivez ensuite la même méthode et transformez le script Python en exécutable fichier reconnu par le système🎜🎜Quest-ce quun fichier exécutable Linux ?🎜🎜À ce stade, vous pouvez également utiliser ./ pour l'exécuter 🎜🎜
🎜🎜./ Qu'est-ce que cela signifie 🎜🎜🎜Il y en a deux ? façons d'exécuter un fichier. La première est d'utiliser son interpréteur pour l'exécuter directement, comme : 🎜🎜Quest-ce quun fichier exécutable Linux ?🎜🎜🎜Chaque interpréteur ne peut exécuter que le script correspondant à votre propre syntaxe. Si vous utilisez un autre interpréteur, une erreur sera générée. Par exemple, le L'interpréteur Python ne peut pas exécuter le script shell. 🎜🎜🎜 Ensuite, dites ./, cliquez sur le système Linux pour signifier "répertoire actuel", et "/" est un séparateur de chemin ordinaire. n'est rien de plus qu'un chemin relatif, tel que : 🎜🎜Quest-ce quun fichier exécutable Linux ?🎜🎜Donc lors de l'exécution d'un fichier exécutable reconnu par le système, ./Ce n'est pas la partie la plus importante, le fichier lui-même l'est. Par exemple, je peux exécuter un exécutable. fichier avec un chemin absolu :🎜🎜🎜🎜

Si vous supprimez le /root/file/ précédent, puis supprimez le .py à la fin, c'est-à-dire, entrez simplement "bonjour" et imprimez un bonjour tout le monde !, alors ce fichier ne semble pas être différent d'une commande du système Linux./root/file/都去掉,然后删掉结尾的.py,也就是只输入"hello”,打印一个hello world!,那么这个文件似乎和Linux系统中的一个命令没什么区别了.

接下来就把他变成和ls这种命令相同的一个"命令".

Quest-ce quun fichier exécutable Linux ?

  • 先把这个可执行文件重命名了

  • 接下来把他放到了 /usr/bin 目录下

  • 直接输入hello,直接打印了hello world!

这也从侧面说明,只要你把一个脚本 变成 系统承认的可执行文件,并且放到/usr/bin 目录下,他就和常用的命令没什么两样.

为什么是/usr/bin?

实际上在Linux系统中有个变量叫做PATH,这个变量中是一组路径的集合,当你输入一个命令的时候(如ls),他就在这个变量的内容中给出的目录里,寻找是否有对应名称的文件,然后运行它.

所以,如果我能把当前目录也加入到这个变量中,那么当前目录下的文件也就可以直接被系统运行而不需要指定路径.

Quest-ce quun fichier exécutable Linux ?

如果一个文件没有"x"属行,那么即便是丢到了/usr/bin目录下也无法执行.

一般很少会直接声明PATH变量,对这个变量操作时也会将其写入到~/.bashrc目录或者/etc/profile

Ensuite, nous allons le transformer en une "commande" identique à ls .

Quest-ce quun fichier exécutable Linux ?

  • Renommez d'abord le fichier exécutable

  • Puis placez-le dans le répertoire /usr/bin

  • Saisissez bonjour directement et imprimez bonjour tout le monde !

  • Cela s'explique également de côté, tant que vous transformez un script en un fichier exécutable reconnu par le système et placée dans le répertoire /usr/bin, elle n'est pas différente des commandes couramment utilisées.
    🎜Pourquoi est-ce /usr/bin ?🎜🎜 En fait, il existe une variable appelée PATH dans le système Linux. Cette variable est un ensemble de chemins lorsque vous entrez une commande (comme ls), elle se trouve ici dans le répertoire indiqué dans le contenu. de la variable, recherchez un fichier avec le nom correspondant, puis exécutez-le 🎜🎜Donc, si je peux ajouter le répertoire courant à cette variable, alors les fichiers du répertoire courant peuvent être directement Le système s'exécute sans spécifier le chemin. 🎜🎜9 .png🎜🎜Si un fichier n'a pas la ligne d'attribut "x", il ne peut pas être exécuté même s'il est jeté dans le répertoire /usr/bin.🎜🎜 Généralement, la variable PATH est rarement déclarée directement lorsque. opérant sur cette variable, elle sera également écrite dans le répertoire ~/.bashrc ou dans les fichiers des deux variables d'environnement /etc/profile. connexion de session Après son apparition, le contenu à l'intérieur sera automatiquement exécuté et ce répertoire sera ajouté à la variable PATH 🎜🎜🎜🎜 Résumé 🎜🎜 Si un fichier de script a les autorisations "x" et que l'interpréteur correspondant est spécifié en premier. ligne, ou Si un fichier binaire a l'autorisation "X", alors le fichier devient un fichier exécutable reconnu par le système. À ce stade, lors de son exécution, vous pouvez non seulement spécifier le chemin absolu ou le chemin relatif, mais également l'exécuter via. son interprète, ou vous pouvez Le répertoire où il se trouve est ajouté à la variable "PATH" 🎜🎜Si un fichier de script ne répond pas aux exigences ci-dessus, vous ne pouvez l'exécuter que via son interprète, tel que "bash hello.sh. " ou " python bonjour. " py " de cette façon.🎜🎜Recommandations associées : "🎜Tutoriel vidéo Linux🎜"🎜

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Meilleurs paramètres graphiques
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Comment réparer l'audio si vous n'entendez personne
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Commandes de chat et comment les utiliser
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Différence entre Centos et Ubuntu Différence entre Centos et Ubuntu Apr 14, 2025 pm 09:09 PM

    Les principales différences entre Centos et Ubuntu sont: l'origine (Centos provient de Red Hat, pour les entreprises; Ubuntu provient de Debian, pour les particuliers), la gestion des packages (Centos utilise Yum, se concentrant sur la stabilité; Ubuntu utilise APT, pour une fréquence de mise à jour élevée), le cycle de support (CentOS fournit 10 ans de soutien, Ubuntu fournit un large soutien de LT tutoriels et documents), utilisations (Centos est biaisé vers les serveurs, Ubuntu convient aux serveurs et aux ordinateurs de bureau), d'autres différences incluent la simplicité de l'installation (Centos est mince)

    Centos arrête la maintenance 2024 Centos arrête la maintenance 2024 Apr 14, 2025 pm 08:39 PM

    Centos sera fermé en 2024 parce que sa distribution en amont, Rhel 8, a été fermée. Cette fermeture affectera le système CentOS 8, l'empêchant de continuer à recevoir des mises à jour. Les utilisateurs doivent planifier la migration et les options recommandées incluent CentOS Stream, Almalinux et Rocky Linux pour garder le système en sécurité et stable.

    Comment installer CentOS Comment installer CentOS Apr 14, 2025 pm 09:03 PM

    Étapes d'installation de CentOS: Téléchargez l'image ISO et Burn Bootable Media; démarrer et sélectionner la source d'installation; sélectionnez la langue et la disposition du clavier; configurer le réseau; partitionner le disque dur; définir l'horloge système; créer l'utilisateur racine; sélectionnez le progiciel; démarrer l'installation; Redémarrez et démarrez à partir du disque dur une fois l'installation terminée.

    Quelles sont les méthodes de sauvegarde pour Gitlab sur Centos Quelles sont les méthodes de sauvegarde pour Gitlab sur Centos Apr 14, 2025 pm 05:33 PM

    La politique de sauvegarde et de récupération de GitLab dans le système CentOS afin d'assurer la sécurité et la récupérabilité des données, Gitlab on CentOS fournit une variété de méthodes de sauvegarde. Cet article introduira plusieurs méthodes de sauvegarde courantes, paramètres de configuration et processus de récupération en détail pour vous aider à établir une stratégie complète de sauvegarde et de récupération de GitLab. 1. MANUEL BACKUP Utilisez le Gitlab-RakegitLab: Backup: Créer la commande pour exécuter la sauvegarde manuelle. Cette commande sauvegarde des informations clés telles que le référentiel Gitlab, la base de données, les utilisateurs, les groupes d'utilisateurs, les clés et les autorisations. Le fichier de sauvegarde par défaut est stocké dans le répertoire / var / opt / gitlab / backups. Vous pouvez modifier / etc / gitlab

    Explication détaillée du principe docker Explication détaillée du principe docker Apr 14, 2025 pm 11:57 PM

    Docker utilise les fonctionnalités du noyau Linux pour fournir un environnement de fonctionnement d'application efficace et isolé. Son principe de travail est le suivant: 1. Le miroir est utilisé comme modèle en lecture seule, qui contient tout ce dont vous avez besoin pour exécuter l'application; 2. Le Système de fichiers Union (UnionFS) empile plusieurs systèmes de fichiers, ne stockant que les différences, l'économie d'espace et l'accélération; 3. Le démon gère les miroirs et les conteneurs, et le client les utilise pour l'interaction; 4. Les espaces de noms et les CGROUP implémentent l'isolement des conteneurs et les limitations de ressources; 5. Modes de réseau multiples prennent en charge l'interconnexion du conteneur. Ce n'est qu'en comprenant ces concepts principaux que vous pouvez mieux utiliser Docker.

    Comment utiliser Docker Desktop Comment utiliser Docker Desktop Apr 15, 2025 am 11:45 AM

    Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).

    Comment monter un disque dur dans les centos Comment monter un disque dur dans les centos Apr 14, 2025 pm 08:15 PM

    Le support de disque dur CentOS est divisé en étapes suivantes: Déterminez le nom du périphérique du disque dur (/ dev / sdx); créer un point de montage (il est recommandé d'utiliser / mnt / newdisk); Exécutez la commande Mount (mont / dev / sdx1 / mnt / newdisk); modifier le fichier / etc / fstab pour ajouter une configuration de montage permanent; Utilisez la commande umount pour désinstaller l'appareil pour vous assurer qu'aucun processus n'utilise l'appareil.

    Que faire après Centos arrête la maintenance Que faire après Centos arrête la maintenance Apr 14, 2025 pm 08:48 PM

    Une fois CentOS arrêté, les utilisateurs peuvent prendre les mesures suivantes pour y faire face: sélectionnez une distribution compatible: comme Almalinux, Rocky Linux et CentOS Stream. Migrez vers les distributions commerciales: telles que Red Hat Enterprise Linux, Oracle Linux. Passez à Centos 9 Stream: Rolling Distribution, fournissant les dernières technologies. Sélectionnez d'autres distributions Linux: comme Ubuntu, Debian. Évaluez d'autres options telles que les conteneurs, les machines virtuelles ou les plates-formes cloud.