Tentatives de bonnes réponses à des questions qui peuvent ne pas l'être |
Les interfaces graphiques ont fait perdre de vue qu'il était possible de communiquer avec un ordinateur autrement qu'avec une souris. Pourtant certains programmes réclament qu'on les lance à partir d'une fenêtre spécifique appelée console (terminal sous Linux). On travaille alors en mode ligne de commande. Dans cette fenêtre s'affichent les caractères saisis au clavier ainsi que les messages renvoyés par le programme qu'on a lancé. Ceci dit, comment ouvre-t-on une fenêtre console ?
Comme toute fenêtre elle s'ouvre par le lancement d'un programme, généralement un interpréteur de commandes. Avant l'arrivée de Windows NT on utilisait le programme DOS command.com. Bien qu'on puisse toujours l'exécuter dans les environnements 32 bits on se sert maintenant de cmd.exe ou bien, depuis Windows 7, de powershell.exe.
Il s'agit de programmes conversationnels c'est à dire qu'ils restent en attente des ordres saisis au clavier. L'ordre est pris en compte et exécuté après qu'on a appuyé sur la touche Entrée. En arrêtant le programme la fenêtre se referme et réciproquement la fermeture de la fenêtre arrête le programme.
On les range traditionnellement dans deux catégories, les commandes internes et les commandes externes mais il s'agit, nous allons le voir, d'un abus de langage.
Les seules réelles commandes sont les ordres compris par l'interpréteur de commandes. Il s'agit par exemple de dir (directory), cd (change directory), exit, etc. Si la chaîne de caractères saisie ne correspond à aucune commande elle est considérée comme étant le nom d'un programme. L'interpréteur exécute alors la commande implicite run déclenchant l'exécution de ce programme.
Le fonctionnement de powershell est un peu plus complexe. Il autorise tout ce qu'il est permis de faire avec cmd mais ouvre la porte au domaine des objets avec la notion d'applet.
Le programme ainsi lancé peut aussi bien être un programme s'exécutant en mode graphique (un navigateur par exemple) qu'un programme s'exécutant en mode ligne de commande (comme ipconfig). Dans ce dernier cas les messages qu'il renvoi vont s'afficher directement dans la fenêtre console. Un programme en mode ligne de commande peut lui aussi être conversationnel et rester en attente d'ordres à exécuter (diskpart par exemple).
Il y a donc les commandes, telles qu'elles ont été définies ci-dessus, et les programmes fonctionnant en mode ligne de commande, souvent appelés eux aussi commandes par commodité de langage.
Il y a plusieurs manières de lancer cmd.exe. La plus simple est d'utiliser la boîte de dialogue Exécuter.
Cependant certaines actions requièrent que cmd.exe soit lancé avec élévation de privilège, même si l'on est soi-même administrateur. Dans ce cas il faut passer par le raccourci nommé par défaut Invite de commande, et faire un clic droit pour demander à ce qu'il soit exécuté en mode administrateur.
Si l'on souhaite être en mode administrateur par défaut on peut l'indiquer dans les propriétés du raccourci.
Mais pourquoi Microsoft a-t-il choisi ce nom étrange, invite de commande ?
L'invite de commande (prompt) est une chaîne de caractères qui s'affiche à l'ouverture d'une fenêtre console indiquant à l'utilisateur que l'interpréteur de commandes attend les ordres à exécuter. Cette chaîne de caractères est le contenu de la variable d'environnement PROMPT, par défaut $P$G (nom du répertoire courant suivi du signe >).
Dans l'exemple ci-dessous une commande prompt a modifié le texte de l'invite standard par un "Bonjour" suivi de l'heure du moment, et une autre a remis la valeur par défaut.
Donc, contrairement à ce qu'on lit trop souvent ici et là, on ne lance n'y n'exécute une invite de commande, en dépit du malencontreux choix de terme de la part de Microsoft.