Maison  >  Article  >  Opération et maintenance  >  À quoi fait référence le fichier exécutable Linux ?

À quoi fait référence le fichier exécutable Linux ?

王林
王林avant
2023-05-11 20:58:112143parcourir

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 de script) ) , peut également être 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 ? Un fichier de code peut aussi être 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, les principales façons d'exécuter un fichier sont de deux types : bash test.sh ou ./test.sh.<p></p>Ce <code>test.sh est appelé Fichiers exécutables.

bash test.sh或者./test.sh.

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

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

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

À quoi fait référence le fichier exécutable Linux ?

而脚本文件则输出:
À quoi fait référence le fichier exécutable Linux ?

可执行文件的区别

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

À quoi fait référence le fichier exécutable Linux ?

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

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

  • 文件有"x"权限

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

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

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

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

À quoi fait référence le fichier exécutable Linux ?

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

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

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

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

À quoi fait référence le fichier exécutable Linux ?

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

./ 表示什么?

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

À quoi fait référence le fichier exécutable Linux ?

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

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

À quoi fait référence le fichier exécutable Linux ?

所以在执行一个系统认可的可执行文件的时候,./不是最重要的那部分,这个文件本身才是.比如我可以用绝对路径运行一个可执行文件:

À quoi fait référence le fichier exécutable Linux ?

如果连前面的/root/file/都去掉,然后删掉结尾的.py,也就是只输入"hello”,打印一个hello world!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 ls couramment utilisé, la commande mkdir et ainsi de suite sont des scripts shell ou des scripts Python couramment utilisés. sont des fichiers qui dépendent de l'exécution de l'interpréteur.

#🎜🎜#Grâce à la commande fileVous pouvez vérifier le type d'un fichier. Par exemple, un fichier binaire sera affiché : #. 🎜🎜##🎜🎜#À quoi fait référence le fichier exécutable Linux #🎜🎜##🎜🎜#Le fichier de script génère :
Quoi le fichier exécutable Linux fait-il référence à #🎜🎜##🎜🎜##🎜🎜#La différence entre les fichiers exécutables#🎜🎜##🎜🎜## 🎜🎜#Comme vous pouvez le voir dans les deux fichiers de script ci-dessus, le le contenu de sortie est différent. L'un est reconnu comme script shell et l'autre est considéré comme un fichier texte ordinaire. Mais les deux fichiers sont exécutables : #🎜🎜##🎜🎜#Le fichier exécutable Linux fait référence à Quoi#🎜🎜##🎜🎜#Comme le montre l'image : après en exécutant les deux fichiers, hello world! sera affiché #🎜🎜##🎜🎜#Deux exécutions différentes sont utilisées ici Méthode, la première méthode spécifie directement un fichier exécutable ./hello.sh S'il est exécuté de cette manière, le script doit répondre aux deux exigences suivantes : #🎜🎜#
  • #🎜🎜#Le fichier a l'autorisation "x". #🎜🎜#
  • #🎜🎜#Si le fichier n'est pas un fichier de type binaire, il faut le préciser en première ligne au début Son interprète#🎜🎜#
#🎜🎜#Le premier fait référence à "rwx" dans le système de fichiers Linux. r signifie lecture seule, w signifie inscriptible et "x" signifie tant que ce fichier est exécutable.#🎜🎜##🎜🎜## 🎜🎜#Le jugement selon lequel ce fichier est exécutable est un peu similaire au "type canard", c'est-à-dire que tant qu'un animal peut cancaner, je pense que c'est un canard Même s'il arrive à ce moment-là Si un chien cancane. deux fois, il est alors 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".#🎜🎜##🎜🎜# À quoi fait référence le fichier exécutable Linux#🎜🎜##🎜🎜 #Vous pouvez le regarder Lorsqu'il a vérifié le type de fichier, il a constaté qu'il était cohérent avec le contenu imprimé par le script Python ci-dessus, et a pensé qu'il s'agissait d'un fichier txt #🎜🎜##🎜🎜# Puis il a ajouté les autorisations d'exécution, puis a exécuté './', affichant "Commande introuvable".#🎜🎜##🎜🎜#Ici, le système le traite comme un script shell à exécuter, en lit le contenu à son tour, puis le transmet au Interpréteur "/bin/bash" pour l'exécution.#🎜🎜## 🎜🎜#Ensuite, suivez le même modèle et transformez le script Python en un fichier exécutable reconnu par le système#🎜🎜##🎜🎜#Qu'est-ce que le fichier exécutable Linux ?#🎜🎜##🎜🎜#À ce moment, vous pouvez également utilisez ./ pour l'exécuter.# 🎜🎜##🎜🎜##🎜🎜#./ Qu'est-ce que cela signifie #🎜🎜##🎜🎜##🎜🎜# Il existe deux façons de le faire ? exécuter un fichier. La première consiste à utiliser son interpréteur pour l'exécuter directement. Tel que : #🎜🎜##🎜🎜#À quoi fait référence le fichier exécutable Linux#🎜🎜##🎜🎜##🎜🎜#Chaque interpréteur ne peut exécuter que des scripts correspondant à sa propre syntaxe. Si d'autres interpréteurs sont utilisés, un une erreur sera générée. Par exemple, l'interpréteur Python ne peut pas exécuter de scripts shell #🎜🎜##🎜🎜##🎜🎜# Ensuite, parlons de ./. " dans le système Linux, et "/" est un séparateur de chemin ordinaire, combiné dans Together, ce n'est rien de plus qu'un chemin relatif, tel que : #🎜🎜##🎜🎜#linux À quoi fait référence un fichier exécutable ?#🎜🎜##🎜🎜#Ainsi, lors de l'exécution d'un fichier exécutable reconnu par le système, ./ n'est pas la partie la plus importante, le fichier lui-même est Oui. Par exemple, je peux exécuter un fichier exécutable avec un chemin absolu : #🎜🎜##🎜🎜#À quoi fait référence le fichier exécutable Linux#🎜🎜##🎜🎜#Si vous supprimez même le /root/file/ précédent, puis supprimez la terminaison .py, c'est-à-dire entrez simplement "hello" et imprimez un hello world! , alors ce fichier ne semble pas être différent d'une commande du système Linux #🎜🎜#.

Ensuite, transformez-le en une "commande" identique à ls.ls这种命令相同的一个"命令".

À quoi fait référence le fichier exécutable Linux ?

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

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

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

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

为什么是/usr/bin?

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

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

À quoi fait référence le fichier exécutable Linux ?

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

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

Qu'est-ce que le fichier exécutable Linux ?🎜
  • 🎜Renommer d'abord le fichier exécutable🎜 li>
  • 🎜Suivant , mettez-le dans le répertoire /usr/bin🎜
  • 🎜Saisissez bonjour directement et imprimez bonjour tout le monde !🎜
  • 🎜Cela montre également du côté, tant que vous transformez un script en un fichier exécutable reconnu par le système et que vous le placez dans le répertoire /usr/bin, il ne sera pas différent des commandes couramment utilisées.🎜

    Pourquoi est-ce /usr/bin ?

    🎜En fait, il existe une variable dans le système Linux appelée PATH. Cette variable contient un ensemble de chemins, lorsque. vous entrez une commande (telle que ls), elle recherchera un fichier avec le nom correspondant dans le répertoire indiqué dans le contenu de cette variable, puis l'exécutera 🎜🎜Donc, si je peux mettre le répertoire actuel également ajouté. cette variable, alors les fichiers du répertoire courant peuvent être directement exécutés par le système sans spécifier de chemin.🎜🎜À quoi fait référence le fichier exécutable Linux🎜
    🎜Si un fichier n'a pas de 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. Lorsqu'on opère sur cette variable, elle sera également écrite dans le répertoire ~/.bashrc ou /etc/profile. Dans les fichiers de ces deux variables d'environnement, le contenu sera automatiquement exécuté une fois la session connectée, et ce répertoire sera ajouté à la variable PATH.🎜

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer