Une interface de ligne de commande ou CLI est un moyen d'interagir avec un ordinateur en lui fournissant des lignes de commandes textuelles (c'est-à-dire des séquences de caractères) soit en utilisant un clavier soit un script. Elle est aussi parfois appelée CLUE pour environnement utilisation en ligne de commande (Command Line User Environment). Dans sa forme la plus simple, l'utilisateur tape une commande après l'affichage par le système d'une invite de commande. Le système de l'ordinateur (en fait le programme qui accepte de telles entrées) exécute ensuite la commande donnée. Le résultat peut être une sortie texte, ou l'initialisation et l'exécution d'un programme, ou la modification de l'affichage graphique sur un écran ou une imprimante, ou un changement dans le système de fichiers (par exemple effacer un fichier, modifier un fichier ou créer un fichier).
Ce terme est généralement utilisé en comparaison avec l'interface graphique (GUI) dans laquelle les commandes sont généralement fournies en déplaçant un pointeur (comme un curseur de souris) ou en appuyant sur une touche (c'est-à-dire en cliquant, souvent sur une touche de la souris).
Les programmes qui implémentent de telles interfaces sont souvent appelés des interpréteurs de commande. Des exemples de ce type de programme inclus les divers shells, VMS DCL (Digital Command Language), et des programmes de conception proche comme CP/M et le command.com de DOS, ceux-ci étant fortement basés sur les interfaces de système d'exploitation DEC RSX et RSTS (qui étaient aussi des interfaces de ligne de ligne de commande).
Il y a d'autres programmes qui utilisent la ligne de commande également. Le programme AutoCAD de conception assistée par ordinateur en est un bon exemple. Dans certains environnements comme le système d'exploitation Oberon ou l'interface utilisateur de Smalltalk, la plupart du texte qui apparait à l'écran peut être utilisé pour fournir des commandes.
Les commandes fournies à l'interface de ligne de commande sont souvent de la forme
faitQuelquechose comment versUnFichier
ou
faitQuelquechose comment < fichierEntree > fichierSortie
faitQuelquechose correspond à un verbe, comment à un adverbe (il décrit comment la commande doit s'exécuter dans cette instance - par exemple, doit-elle être particulièrement « verbeuse » ou particulièrement « silencieuse ») et versUnFichier à un objet (souvent un ou plusieurs fichiers) auquel s'applique la commande. Le caractère « > » dans le second exemple est un caractère de redirection, indiquant au système d'exploitation (généralement un interpréteur de commande) d'envoyer la sortie des commandes précédentes (celles à gauche du « > ») vers un autre endroit (le fichier nommé à droite du « > »). Un autre caractère commun et important de redirection est la barre verticale (« | » ou « pipe ») qui indique à l'interface de ligne de commande de traiter la sortie de cette commande comme l'entrée d'une autre ; c'est un mécanisme puissant pour l'utilisateur, comme expliqué ici Pipe_(Unix) (en anglais) et là Pipes_and_filters (en anglais).
Avantages de la ligne de commande
Même si les nouveaux utilisateurs apprennent plus rapidement l'interface graphique pour réaliser des tâches communes, les interfaces en ligne de commande bien conçues ont plusieurs avantages :
- les utilisateurs habiles peuvent utiliser la ligne de commande plus rapidement que l'interface graphique pour des tâches simples, surtout depuis l'avènement de la complétion par tabulation. Les programmes prévus pour être lancés en ligne de commande ont souvent intentionnellement des noms très courts afin qu'ils puissent être appelés avec seulement quelques frappes clavier.
toutes les options et opérations sont atteignables de façon consistante, un « niveau » après la commande basique. Avec la majorité des interfaces graphiques, les diverses opérations et options apparaissent souvent dans des menus différents avec des présentations différentes. Ils peuvent également être séparés dans des niveaux de menus différents. Dans tous les cas, des applications (ou outils) différents peuvent avoir des présentations différentes ; dans ce cas, il n'y a aucun avantage à une des approches. Les deux sont susceptibles de gêner les utilisateurs.
toutes les options et opérations sont contrôlées de manière plus ou moins identique. Le « plus ou moins » dans ce cas est une critique fréquente des interfaces de ligne de commande : il ne devrait pas être plus compliqué de comprendre et réaliser une opération rare qu'une opération commune, mais en pratique il peut être nécessaire d'apprendre une nouvelle syntaxe inconnue. Néanmoins, peu d'interfaces graphiques offrent un accès équivalent à l'entière étendue des options disponibles.
les interfaces en ligne de commande peuvent souvent servir de langage de script (voir ShellScript) et réaliser des opérations dans un mode batch sans interaction de l'utilisateur. Ceci signifie qu'une fois qu'une opération est analysée et comprise, un « script » implémentant cette idée peut être écrit et enregistré. L'opération peut alors être lancée sans analyse et effort de conception supplémentaire. Avec les interfaces graphiques, les utilisateurs doivent recommencer depuis le début à chaque fois, puisque le scripting graphique (s'il existe) est pratiquement toujours limité - même si les macros peuvent parfois être utilisées d'une manière identique. Les commandes simples n'ont même pas besoin d'un script, puisque la commande complétée peut généralement recevoir un nom (un alias) et être exécutée simplement en tapant ce nom dans l'interface de ligne de commande.
Liens
In the Beginning was the Command Line (anglais) par Neal Stephenson
Une introduction subtile à la différence entre les interfaces de ligne de commande et les interfaces graphiques, et l'histoire de leur développement.Portail Administration Système
Portail Interface Ligne De Commande