Interpréteur de commandes
Un article de Wikipédia, l'encyclopédie libre.
Un interpréteur de commandes est un logiciel faisant partie des composants de base d'un système d'exploitation, le Command-line interface (CLI) (ou Invite de commandes).
C'est un mode de contrôle d'un ordinateur fonctionnant en ligne de commande (commandes tapées au clavier) qui sont transmises au Shell en mode interactif.
Son rôle est de traiter des lignes de commande tapées au clavier. Ces commandes, une fois traitées, 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 autre logiciel.
L'invite elle-même 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.
Sommaire |
[modifier] 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.
[modifier] 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 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).
[modifier] Sous les systèmes UNIX
Sous UNIX, la ligne de commande a toujours été le moyen privilégié de communication avec l'ordinateur. Le Bourne shell (sh) est le shell 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 shells qui sont encore prédominants dans les environnements de démarrage de systèmes UNIX.
La dépendance des shells vis-à-vis de commandes externes rend les scripts peu portables, même si les shells eux-mêmes ont été portés sur des environnements autres que leur environnement originel UNIX.
[modifier] Shells et environnements graphiques
L'invite est l'interface la plus simple à réaliser et conserve de nombreux avantages par rapport aux environnements graphiques :
- Précision et simplicité d'automatisation des tâches (mode batch) ;
- Contrôle à distance ;
- Uniformité ;
- Stabilité ;
- Faible consommation des ressources.
Beaucoup de serveurs ne s'administrent qu'en ligne de commande car il y a peu de raisons d'avoir besoin d'une interface graphique sur un serveur, interface qui pourrait être source de dysfonctionnements et dont la prise en main distante est plus ardue.
Dans l'utilisation bureautique quotidienne, les gestionnaires de fichiers graphiques, et autres menus de lancement d'applications tendent à remplacer le shell, en fournissant une alternative plus conviviale. Néanmoins, le shell reste l'outil le plus polyvalent, encore irremplaçable pour certaines tâches. Ainsi shell et logiciels utilitaires en mode graphique sont complémentaires dans toute utilisation poussée de l'outil informatique.
En programmation Windows, on appelle aussi fonctions shell (ou shell API) les fonctions exportées par l'explorer. Par exemple la fonction SHFileOperation()
s'occupe des manipulations de fichiers (copie, déplacement, effacement…)
[modifier] 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 # Emettre un signe d'invite (<em>prompt</em>) # Lire la ligne courante # Exécuter la commande indiquée sur cette ligne FIN
[modifier] Quelques shells populaires
[modifier] Shell sous Windows
- Le programme COMMAND.COM sous MS-DOS, qui peut paraître obsolète, mais qui occupe un minimum de place sur disque et en mémoire.
- Le programme cmd.exe sous Windows NT et ses dérivés
- Windows PowerShell est le nouveau shell de Microsoft, avec l'approche objet de .NET 2.0
- L'Explorateur Windows (Explorer.exe) est le shell utilisé par l'interface graphique actuelle de Windows. Il est paramétré dans le registre par l'entrée HKey_Current_User\Software\Microsoft\Windows NT\CurrentVersion\Winlogon>Shell. Le shell par défaut peut être remplacé par un shell non Microsoft, comme LiteStep.
- Progman.exe était le shell graphique de Windows 3.x. Il est utilisé par le composant WoW de Windows XP pour émuler les applications 16 bits actuellement. Une technique permet d'utiliser Progman comme shell à la place de Explorer sous Windows 9x.
En fait, dans la base de registre de Windows, de très nombreux programmes sont considérés comme des shells.
[modifier] Shells Unix
- Shell de Stephen R. Bourne (voir (en) Stephen R. Bourne)
- Bourne shell (sh)
- Bourne-Again shell (bash)
- Csh : C shell
- Shell de David Korn : Korn shell (ksh), voir (en) David Korn
- tcsh
- Shell de Kenneth Almquist, utilisé lorsqu'il est nécessaire d'avoir un shell prenant peu de place sur le disque, clone de la variante SVR4 du Bourne shell;
- Ash (Almquist SHell voir (en) ash (Almquist shell))
- Dash shell (Debian Almquist SHell)
- Z Shell (ZSH), reprenant les fonctions les plus pratiques de bash, ksh et tcsh.
Pour une liste plus complète, voir Catégorie:Shell Unix
[modifier] Exemple
[ske:~] ske% cd /usr/ [ske:/usr] ske% ls bin lib local share include libexec sbin standalone [ske:/usr] ske% top [ske:/usr] ske% cd /tmp [ske:/tmp] ske% ls -l total 152 -rw-r--r-- 1 ske admin 68328 15 Apr 10:54 93633C68062E855100FCE70A -rw-r--r-- 1 ske admin 0 19 Apr 09:28 cs_cache_lock_501 -rw-r--r-- 1 root admin 644 23 Apr 09:05 mcx_compositor drwxr-xr-x 3 ske admin 102 19 Apr 11:39 pb-man -rw-r--r-- 1 ske admin 74 15 Apr 10:54 reload-stub.s srwxrw-rw- 1 root admin 0 23 Apr 09:04 slp_ipc [ske:/tmp] ske% echo Hello World >test.tmp [ske:/tmp] ske% cat test.tmp Hello World [ske:/tmp] ske% rm test.tmp [ske:/tmp] ske% |
une session avec l'interpréteur tcsh |
[modifier] Voir aussi
Portail de l'informatique – Accédez aux articles de Wikipédia concernant l’informatique. |