Que se passe-t-il lorsque vous exécutez une commande sous Linux ?

La plupart des utilisateurs de Linux ignorent souvent le fonctionnement interne du système d’exploitation. Vous exécutez peut-être des commandes Linux sur le shell pendant longtemps, mais vous êtes-vous déjà demandé ce qui se passait dans les coulisses lorsque vous appuyez sur Entrer ?

À la fin, vous aurez une brève compréhension de la façon dont le shell traite la commande tapée sous Linux.

Traitement de la commande

Lorsque vous entrez une commande, la première chose que fait le shell est de diviser la commande entière en « jetons ». Le shell recherchera alors un nom de programme appartenant au premier jeton de la ligne de commande.

S’il ne le trouve dans aucun des répertoires du chemin de recherche défini dans la variable d’environnement $PATH ou dans le répertoire local avec le . opérateur, ou ce n’est pas un alias de shell ou une fonction de shell, le shell donnera une erreur. S’il trouve une commande valide, le shell passera alors en revue chacun des autres jetons et décidera s’il s’agit d’une variable, d’un paramètre du shell ou d’un argument de la commande.

Si le shell détermine qu’il s’agit d’une variable ou d’un paramètre comme le ~ pour le répertoire personnel, le shell les développera ou les remplacera par leurs valeurs d’origine dans la commande.

Voir aussi :  Qu'est-ce que le bureau à distance Ubuntu ? Comment le configurer et l'utiliser

Lorsque le shell a développé des paramètres ou des variables, il transmet la chaîne de commande à la commande, exécutant le programme avec ses arguments. Le shell ne détermine pas si des arguments sont valides. C’est le travail de la commande.

Exécution de la commande

Lorsque le shell lance une autre commande, comment revient-il à la même invite que vous utilisiez auparavant ? Le shell fait une copie de lui-même, un processus appelé fork. Cette copie du shell se remplace par la commande, avec tous les arguments traités précédemment. C’est ce qu’on appelle un « exec » et le processus combiné est connu sous le nom de « fork-and-exec ».

Par exemple, lorsque vous exécutez la commande ls, le processus shell se dédoublera en utilisant la fourchette() méthode et créez une autre instance de shell. Sur les deux processus shell en cours d’exécution sur le système, le shell supplémentaire exécutera ls en utilisant le exec() fonction, se transformant en une instance de la commande ls.

Pendant ce temps, le shell d’origine attend que la commande se termine. C’est pourquoi vous pouvez utiliser le contrôle des tâches pour suspendre les tâches et exécuter les tâches en arrière-plan dans le shell.

Signaler le statut de sortie

Les commandes Linux signalent si elles ont été exécutées avec succès ou non via leur état de sortie. Comme son nom l’indique, les programmes signalent leur état de sortie lorsqu’ils ont fini de s’exécuter. Ils le font à travers le $ ? variable d’environnement, qui contient l’état de sortie de la dernière commande exécutée.

Voir aussi :  Comment installer les composants individuels de LibreOffice sous Linux

Par convention, un état de sortie de 0 indique une exécution réussie, tandis que tout autre que 0 signifie généralement une erreur. Votre shell peut également indiquer un état de sortie différent de zéro sur la ligne de commande en fonction de la configuration de votre invite.

La capture d’écran ci-dessus est un exemple montrant une invite Zsh personnalisée qui affiche un état de sortie d’erreur de 127 en raison d’une commande qui n’existe pas.

Vous savez maintenant comment fonctionnent les commandes Linux

Maintenant que vous savez comment le shell Linux traite une commande, se lance et s’exécute lui-même, et comment les programmes signalent leur état de sortie, vous pouvez utiliser la ligne de commande plus efficacement.

Plusieurs shells Linux sont disponibles gratuitement pour les utilisateurs. Bien que chacun d’eux effectue plus ou moins le même travail, ils sont différents à bien des égards. Vous pouvez essayer d’installer certains des shells sur votre système et décider vous-même lequel vous convient le mieux.

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *