Interpréteur de commandes - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Un interpréteur de commandes, parfois désigné par l'anglicisme shell, est un programme faisant partie des composants de base d'un système d'exploitation, le Command-line interface (CLI) (ou invite de commandes).

C'est le mode de contrôle fondamental d'un ordinateur. Ce dernier prend ses données d'entrées en ligne de commande, qui sont transmises à l'interpréteur en mode interactif.

Son rôle est de traiter les commandes tapées au clavier par l'utilisateur. Ces commandes, une fois interprétées, auront pour effet de réaliser telle ou telle tâche d'administration, ou bien de lancer l'exécution d'un logiciel.

L'invite, parfois désigné par l'anglicisme prompt, consiste en quelques caractères, en début de ligne (généralement, le nom de compte de l'utilisateur, et/ou l'unité logique par défaut, et/ou le chemin par défaut, et/ou date, ...), se terminant par un caractère bien connu (souvent « ] », « # » ou « > »), invitant l'utilisateur à taper une commande.

Perspective historique

Les premiers systèmes capables d'interpréter des lignes de commandes sont apparus au début des années 1960, en même temps que le clavier informatique. Auparavant, les ordinateurs étaient uniquement utilisés en traitement par lots.

Sous Microsoft Windows

Sous Windows, seule l'invite DOS existe, pour des raisons historiques. Elle se lance par l'utilitaire COMMAND.COM ou cmd.exe. Jusqu'à Windows 3.x, Windows n'était qu'une interface graphique du DOS, mais a commencé à proposer plus de fonctionnalités que lui à partir de Windows 95. La famille de Windows NT, jusqu'à Windows XP qui en est la version 5.1, se passe presque intégralement de la ligne de commande, et l'invite de commandes qu'elle propose n'est qu'un émulateur, largement bridé, de MS-DOS. Il est toutefois question[évasif] que la ligne de commande réapparaisse de façon plus significative dans la nouvelle version de Windows, Windows Vista avec le Windows PowerShell (non inclus).

Sous les systèmes UNIX

Capture d'écran d'une session Bash, prise sous Gentoo Linux.

Sous UNIX, la ligne de commande a toujours été le moyen privilégié de communication avec l'ordinateur. Le Bourne shell (sh) est l'interpréteur originel de l'environnement UNIX. À son époque, sa grande originalité était l'utilisation de tubes (caractère “|”), qui permettent de connecter la sortie d'une commande à l'entrée d'une autre. On peut ainsi écrire des commandes complexes à partir de commandes simples.

GNU/Linux, la famille BSD et autres dérivés d'UNIX ont hérité de cette particularité, même s'ils disposent également d'interfaces graphiques complètes (notamment X Window et Xorg).

Parmi ces dérivés, Mac OS X se présente comme un environnement essentiellement graphique, mais dispose d'un interpréteur de commandes (tcsh ou bash) qui s'active à partir du programme Terminal.

D'autres langages de scripts tels que Perl, Python ou Ruby, remplacent progressivement les interpréteurs qui sont encore prédominants dans les environnements de démarrage de systèmes UNIX.

La dépendance des interpréteurs vis-à-vis de commandes externes rend les scripts peu portables, même si les interpréteurs eux-mêmes ont été portés sur des environnements autres que leur environnement originel UNIX.

La boucle d'interprétation

Le travail de tout interprète de commande peut se résumer à l'algorithme très simple suivant:

      TANT QUE l'utilisateur ne ferme pas la session      FAIRE      # Émettre un signe d'invite (prompt)      # Lire la ligne courante      # Exécuter la commande indiquée sur cette ligne      FIN      
Page générée en 0.080 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise