La ligne de commandes
La ligne de commande se présente de nos jours comme une application fenetrée du systeme d’exploitation comme une autre. Elle simule l’interface principale utilisée dans les années 40 à 80 pour dialoguer avec un ordinateur : un clavier qui perfore des cartons et une machine à écrire électrique commandée par l’ordinateur, qui affiche ce que l’ordinateur lui demande, autrement dit un téletype.
Machines à écrire électriques
Les machines à écrire électriques dévelopées dans les années 60 améliorent la vitesse de frappe, et lorsqu’elles sont reliées à un ordinateur, permettaient d’afficher la sortie d’un programme relativement rapidement.
A noter que bien que les écrans les ont rendus obsolètes comme interface d’affichage principale, les machines à écrire électriques ont continué à etre améliorées jusque dans les année 90 : le terminal 703 en est un exemple.
Philosophie UNIX
Dans les années 70, a l’arrivée d’UNIX, on affichait encore le résulatat des programmes par le biais d’une machine à écrire plutot qu’un écran d’ordinateur matriciel.
Dans une adminisration ou une entreprise qui utilise un systeme UNIX, plusieurs teletypes sont reliés à un meme systeme : a chaque teletype correspond un utilisateur identifié par un nom et un mot de passe. Cela permet des économies d’argent à une époque où les télétypes sont moins onéreux que les ordinateurs. Ce que voit un opérateur UNIX est une sorte d’imprimate et un clavier, plutot qu’un écran.
Un écran terminal qui se substitue à une machine à écrire est capable d’interpreter le flux electrique (ou numérique) qui lui est envoyé, et d’afficher ces caractères sur un écran, plutot que de les frapper sur une feuille, permettant des économies de papier et un confort d’usage substantiels.
Le systeme execute les programmes de chaque utilisateur en simultané – ou time sharing : tous les programmes qui doivent s’executer sont placés sur un caroussel : en tournant, l’ordinateur execute chaque programme successivement, suffisamment rapidement pour donner l’illusion d’une execution en parallele.
UNIX propose une ligne de commande qui execute en premier lieu un « shell ». Au delà d’une simple invite de commande il s’agit d’un programme qui maintient en mémoire des variables, des états (répertoire courant, id utilisateur réel ou simulé (via su)) et permet de dialoguer avec le noyau de façon plus simple et sécurisée que par le biais de programmes écrits en langage C.