interface de ligne de commande (CLI)

Qu’est-ce qu’une interface de ligne de commande ?

Une interface de ligne de commande (CLI) est une interface utilisateur basée sur du texte (UI) utilisée pour exécuter des programmes, gérer des fichiers informatiques et interagir avec l’ordinateur. Les interfaces de ligne de commande sont également appelées interfaces utilisateur de ligne de commande, interfaces utilisateur de console et interfaces utilisateur de caractères. Les CLIs acceptent comme commandes d’entrée qui sont entrées par clavier ; les commandes invoquées à l’invite de commande sont ensuite exécutées par l’ordinateur.

Aujourd’hui, la plupart des fournisseurs proposent l’interface utilisateur graphique (GUI) par défaut pour les systèmes d’exploitation (OS) tels que Windows, Linux et macOS. La plupart des systèmes Unix actuels offrent à la fois une interface en ligne de commande et une interface utilisateur graphique.

Le système d’exploitation MS-DOS et le shell de commande du système d’exploitation Windows sont des exemples d’interfaces de ligne de commande. De plus, les plates-formes de développement de langages de programmation telles que Python peuvent prendre en charge des interfaces de ligne de commande.

La ligne de commande a perdu de sa popularité après l’introduction des systèmes d’exploitation d’ordinateurs personnels basés sur une interface graphique comme Microsoft Windows et le Mac OS “classique” d’Apple dans les années 1980.La ligne de commande reste un outil important pour les professionnels de l’informatique, les développeurs de logiciels, les administrateurs système, les administrateurs réseau et bien d’autres qui préfèrent une interface plus précise et reproductible à leurs systèmes.

Qu’est-ce qu’une coquille ?

En informatique, un programme shell donne accès aux composants d’un système d’exploitation. Le shell donne aux utilisateurs (ou à d’autres programmes) un moyen d’entrer “à l’intérieur” du système pour exécuter des programmes ou gérer des configurations. La coquille définit la frontière entre l’intérieur et l’extérieur.

Voici les deux types d’interpréteurs de commandes du système d’exploitation:

  • Les shells basés sur CLI offrent aux utilisateurs un mode d’interaction concis et efficace avec le système d’exploitation, sans nécessiter la surcharge d’une interface utilisateur graphique.
  • Les shells basés sur l’interface graphique sont considérés comme plus faciles à utiliser pour les débutants, mais ils incluent également un shell basé sur l’interface de ligne de commande pour les administrateurs système ou les utilisateurs expérimentés qui préfèrent interagir à une invite de commande.

Bash est le shell de ligne de commande le plus couramment utilisé pour les systèmes d’exploitation basés sur Unix, y compris Linux.

Le logiciel qui gère l’interface de ligne de commande est communément appelé interpréteur de langage de commande, processeur de commande ou interpréteur de commandes. Deux shells CLI bien connus sont PowerShell pour Windows et Bash pour Linux et macOS.

Les Shells sont la couche la plus externe du système d’exploitation et sont souvent séparés du noyau du système d’exploitation sous-jacent. Un shell fonctionne comme une application et peut être remplacé au besoin. Un système d’exploitation peut avoir plus d’un shell disponible, comme dans les exemples suivants:

  • Microsoft Windows inclut l’application d’invite de commandes ainsi que l’application PowerShell, qui peuvent toutes deux être utilisées pour interagir directement avec l’ordinateur. Le sous-système Windows pour Linux fournit également une interface de ligne de commande avec accès au système sous-jacent.
  • Linux et d’autres systèmes d’exploitation basés sur Unix fournissent généralement le shell Bourne-Again (bash) comme shell par défaut. D’autres shell, y compris le shell C, le shell Z et d’autres, peuvent être configurés comme shell système par défaut.

Comme le shell n’est qu’une couche au-dessus du système d’exploitation, les utilisateurs peuvent effectuer des opérations qui ne sont pas disponibles dans d’autres types d’interface, telles que le déplacement de fichiers dans des dossiers système et la suppression de fichiers verrouillés.

Pour tirer le meilleur parti de l’utilisation d’un shell CLI, les utilisateurs doivent apprendre un langage de script. La plupart des shells de ligne de commande peuvent enregistrer des séquences de commandes dans un script ou un fichier batch qui peut être entièrement programmable. Le script shell est le fondement de l’automatisation de base de la gestion des systèmes.

Comment fonctionnent les CLIs ?

Une fois qu’un système informatique est en cours d’exécution, son interface de ligne de commande s’ouvre sur un écran vide avec une invite de commande et des commandes peuvent être saisies.

Les types de commandes CLI sont les suivants:

  • commandes système codées dans le cadre de l’interface du système d’exploitation;
  • programmes exécutables qui, lorsqu’ils sont invoqués avec succès, exécutent des applications textuelles ou graphiques ; et
  • programmes par lots (ou fichiers par lots ou scripts shell) qui sont des fichiers texte répertoriant une séquence de commandes. Lorsqu’il est appelé avec succès, un programme batch exécute ses commandes qui peuvent inclure à la fois des commandes système et des programmes exécutables.

CLI est plus qu’un simple système de commande/ réponse, car la plupart ont des fonctionnalités supplémentaires qui rendent l’une préférable à l’autre. Certaines fonctionnalités sont les suivantes:La fonctionnalité de script

  • permet aux utilisateurs d’écrire des programmes pouvant être exécutés sur le système à partir de la ligne de commande.
  • Les canaux de commande permettent aux utilisateurs de diriger la sortie d’un programme pour qu’il soit l’entrée d’un autre programme (“canaliser” le flux de données).
  • Les variables système peuvent être définies sur la ligne de commande ou les valeurs de ces variables affichées.
  • Les fonctions d’historique des commandes permettent à l’utilisateur de rappeler les commandes précédentes émises. Certains enregistrent l’historique des commandes pour la session (comme PowerShell), d’autres peuvent être configurés pour stocker l’historique des sessions plus longtemps (comme bash).

Les commandes et la syntaxe des CLIs ont tendance à être très stables dans le temps, en partie pour permettre la rétrocompatibilité des scripts.

Invites et commandes

Selon le système d’exploitation et l’interface de ligne de commande, il peut y avoir des centaines, voire des milliers de commandes exécutables différentes disponibles. L’ensemble des commandes peut varier considérablement entre les systèmes d’exploitation ou les applications.

Par exemple, Microsoft définit des centaines d’applets de commande comme des ” commandes légères ” à utiliser dans PowerShell ; les fonctions PowerShell sont des listes d’applets de commande pouvant être exécutées en ligne de commande.

Certaines commandes s’exécutent seules sur la ligne de commande, telles que la commande dir :

C:\> les commandes dir

peuvent également être utilisées avec des arguments (parfois appelés paramètres) qui modifient la façon dont la commande doit être exécutée. Les arguments suivent la commande et fournissent des détails ou des spécificités supplémentaires.

La commande cd “changer de répertoire” dans de nombreuses CLIs est utilisée pour changer le répertoire de travail actuel lorsque le nouveau chemin de répertoire souhaité est inclus en argument but mais dans certains cas (comme dans MS-DOS ou l’invite de commande Windows) la commande renvoie elle-même le répertoire de travail actuel.

Cette commande réinitialise le répertoire de travail actuel :

cd\documents\user\working

Les arguments permettent aux utilisateurs de ligne de commande d’obtenir des résultats très spécifiques qui ne sont parfois pas disponibles via une interface graphique.

Les CLIS modernes fournissent des tuyaux, ou des mécanismes pour prendre la sortie d’une commande et l’envoyer en entrée à une autre commande. La barre verticale, ou symbole “|”, est souvent utilisée à cette fin.

Le ” one-liner ” suivant utilise des tuyaux pour enchaîner plusieurs commandes PowerShell afin de récupérer des informations de configuration réseau détaillées à partir d’une machine Windows:

Get-NetIPAddress | Sort InterfaceIndex | FT InterfaceIndex, InterfaceAlias, AddressFamily, IPAddress

Même si cette chaîne est entrée sur la ligne de commande comme s’il s’agissait d’une seule commande, elle inclut les commandes consécutives suivantes:

  • Get-NetIPAddress récupère toutes les informations de configuration IP de l’ordinateur lorsqu’elles sont entrées sans aucun argument.
  • Sort InterfaceIndex accepte en entrée la sortie de l’applet de commande Get-NetIPAddress et la trie par la valeur InterfaceIndex associée à chaque adresse IP incluse dans la configuration de l’ordinateur.
  • FT InterfaceIndex, InterfaceAlias, AddressFamily, IPAddress utilise la commande Format-Table (FT) pour formater la sortie triée de la commande précédente et affiche les valeurs spécifiées pour chaque adresse IP.

La rétrocompatibilité est souvent un objectif lorsque de nouvelles CLIS sont introduites pour remplacer les CLIs existantes, comme lorsque Microsoft a remplacé MS-DOS par l’invite de commande Windows. Bien que certaines commandes MS-DOS ne soient plus prises en charge, la plupart fonctionneront toujours dans PowerShell comme prévu à l’origine.

Les commandes MS-DOS courantes sont les suivantes:

Commande Exemple Notes
CD C: \>CD\utilisateur\programmes
C:\user\programs >
Modifie le répertoire courant sur le chemin spécifié. Lorsqu’il est entré sans chemin, il affiche le nom du répertoire de travail actuel. Si le chemin est inclus dans l’invite de commande, l’invite changera comme dans l’exemple (voir aussi INVITE, ci-dessous).
CHKDSK C:\> CHKDSK a: Vérifie le disque spécifié – dans ce cas, la disquette du lecteur A: – et renvoie un rapport d’état indiquant la taille du disque, le nombre de fichiers et de répertoires utilisés et le nombre d’octets utilisés.
COPIER C:\> COPIE autoexec.bat autoexec.BAK Copie le ou les fichiers spécifiés. Peut être utilisé pour copier des fichiers en doublons avec des noms de fichiers différents ou pour copier des fichiers dans un répertoire différent sans changer de nom.
DEL C: \> DEL autoexec.BAK
C:\> DEL C:\backups \*.BAK
Supprime un ou plusieurs fichiers. Peut être utilisé pour supprimer des fichiers dans le répertoire de travail actuel ou dans un autre répertoire. Peut également être utilisé avec des caractères génériques pour supprimer des groupes de fichiers.
DIR C: \> DIR
C:\> DIR c:\sauvegarde\*.txt
Affiche tous les contenus – fichiers et répertoires – du répertoire spécifié. Si aucun répertoire n’est spécifié, il fait référence au contenu du répertoire courant. Il peut également être utilisé avec des caractères génériques pour afficher uniquement des fichiers spécifiques.
EDLIN C: \> edlin autoexec.bat Démarre edlin, un éditeur de lignes qui peut être utilisé pour éditer des fichiers texte. Dans cet exemple, il est utilisé pour modifier l’autoexec.fichier bat.
FORMAT C:\> FORMAT a: Formate un disque afin qu’il puisse être utilisé avec MS-DOS.
MKDIR C:\> MKDIR c:\NewDIR Crée un nouveau répertoire dans le chemin spécifié.
PLUS C: \> PLUS d’autoexec.bat Affiche le contenu d’un fichier, un écran à la fois. Il est principalement utilisé pour les fichiers texte.
INVITE C: \> invite $pddgg
C:\UTIL Mon 11-05-2021>
Modifie l’invite par défaut. Dans cet exemple, les paramètres sont utilisés avec la commande pour définir l’affichage de l’invite comme le lecteur et le chemin actuels, le jour et la date et le symbole supérieur. L’invite résultante est affichée dans l’exemple.
RMDIR C:\> rmdir c:\backup Supprime un répertoire.
TAPEZ C: \> tapez autoexec.bat Affiche le contenu d’un fichier texte, sans saut de page.

CLI versus GUI

L’interface utilisateur graphique est l’interface utilisateur la plus populaire aujourd’hui. Une interface graphique utilise des fenêtres, des menus et des icônes pour exécuter des commandes. L’utilisation d’une souris est le moyen le plus courant de naviguer dans une interface graphique, bien que de nombreuses interfaces graphiques permettent une navigation et une exécution de programme via un clavier.

Microsoft Word est un exemple d’application basée sur une interface graphique. Un utilisateur peut modifier les options de mise en page et de styles en sélectionnant l’icône correspondante ou le menu déroulant avec une souris ou un clavier.

 une ligne de commande PowerShell
Un exemple de sortie de la ligne de commande PowerShell

Un avantage d’une interface graphique est que l’interface peut afficher visuellement les fonctions disponibles. Cependant, comme elle repose sur l’affichage graphique, une interface graphique peut ne pas avoir le même niveau de fonctionnalité et de contrôle granulaire qu’une interface de ligne de commande. Par exemple, il peut nécessiter de nombreux clics et mouvements dans plusieurs boîtes de dialogue d’une interface graphique pour obtenir le même résultat qu’une seule ligne de commande.

De plus, les interfaces graphiques ne prennent pas facilement en charge les scripts ou l’automatisation. Pour les tâches courantes, un utilisateur doit répéter chaque clic ou naviguer manuellement dans chaque boîte de dialogue de l’interface graphique.

Les administrateurs système qui peuvent avoir besoin de gérer des centaines – voire des centaines de milliers – de systèmes et de configurations trouveront une interface graphique beaucoup moins efficace qu’une interface de ligne de commande. Une commande CLI simple peut facilement ajuster les configurations pour un grand groupe de systèmes à la fois.

Les commandes et les arguments peuvent également être combinés et enregistrés, puis exécutés en tant que script chaque fois qu’une action spécifique – ou un ensemble complet d’actions – est requise. L’interface de ligne de commande est l’outil privilégié pour de nombreuses tâches de gestion de systèmes à l’échelle de l’entreprise.

 un exemple de l'interface utilisateur graphique Windows 11
Interface graphique Windows 11: Le menu Démarrer

Avantages et inconvénients de la CLI

Voici les avantages d’une interface en ligne de commande:

  • contrôle granulaire d’un système d’exploitation ou d’une application;
  • gestion plus efficace d’un grand nombre de systèmes;
  • possibilité de stocker des scripts pour automatiser des tâches régulières ; et
  • les connaissances de base de l’interface de ligne de commande peuvent permettre de résoudre les problèmes de connexion réseau ou de résoudre d’autres tâches système.

Les inconvénients d’une interface en ligne de commande sont les suivants:

  • L’interface graphique est plus conviviale ;
  • courbe d’apprentissage plus raide associée à la mémorisation de commandes et de syntaxes/arguments complexes ; et
  • différentes commandes utilisées dans différents shells.

La ligne de commande est un excellent endroit pour devenir un expert de l’utilisation d’un ordinateur. Une fois que vous êtes prêt, c’est aussi le seul endroit pour apprendre à écrire des scripts shell.

Leave a Reply