The terminal

Reading time15 min

En bref

Résumé de l’article

Dans cette conférence, nous donnons une brève introduction à l’utilisation du terminal et aux principales commandes que vous devriez connaître pour l’utiliser sur un ordinateur.

Points clés

  • Les terminaux sont toujours très présents sur les ordinateurs modernes.

  • Ils offrent un moyen rapide et simple d’interagir avec l’ordinateur.

  • Les principales commandes peuvent différer d’un système d’exploitation à un autre, mais elles remplissent souvent la même fonction (pensez à dir et ls sur Windows et Linux respectivement).

  • Une connaissance de base des commandes usuelles est attendue si vous souhaitez suivre le cursus informatique de l’IMT Atlantique.

Contenu de l’article

Nous avons vu dans la conférence précédente que pour interagir avec le système d’exploitation, l’utilisateur avait besoin d’une interface utilisateur, ou Shell. S’il peut être plus pratique pour votre usage quotidien d’un ordinateur d’utiliser l’interface graphique (GUI), vous pouvez toujours utiliser l’interface en ligne de commande si nécessaire. Parfois, vous n’aurez même pas d’autre choix que de l’utiliser (pensez aux serveurs, en particulier ceux sans interface graphique, par exemple, les serveurs Linux).

Dans le cours d’informatique, vous constaterez également que certaines tâches sont beaucoup plus faciles à réaliser en utilisant la ligne de commande. Connaître les commandes de base améliorera grandement votre productivité lors de la programmation ce semestre et pour les futures conférences tout au long de vos études.

1 — Qu’est-ce qu’un terminal ?

Historiquement, l’interface en ligne de commande était une console physique, appelée terminal, un dispositif composé d’un écran cathodique et d’un clavier, connecté à l’ordinateur. Aujourd’hui, cependant, le terminal est simplement un programme installé sur votre PC.

Selon votre système d’exploitation, l’application terminal peut porter un nom différent, mais sa fonction est toujours la même. Elle affiche une invite (qui se termine généralement par l’un des caractères $, %, #, :, > ou -) et attend que vous saisissiez les commandes correctes. Voici quelques applications terminal :

  • Windows Terminal (par défaut dans les versions récentes de Windows 10 et Windows 11).
  • Invite de commandes (cmd.exe).
  • PowerShell.

Le langage utilisé par cmd.exe s’appelle Batch script (ou simplement Batch). Celui utilisé par PowerShell s’appelle PowerShell Scripting Language (ou simplement PowerShell).

La plupart des distributions Linux sont livrées avec différents émulateurs de terminal par défaut selon l’environnement de bureau :

  • Gnome Terminal (environnement Gnome).
  • Konsole (environnement KDE).

Sur la plupart des plateformes Linux, le langage utilisé pour interagir avec le système s’appelle Bash.

  • Terminal (l’émulateur de terminal par défaut).
  • iTerm2 (une alternative tierce populaire, mais non préinstallée).

Sur MacOS, le langage utilisé pour interagir avec le système s’appelle Zsh.

2 — Les commandes principales

Le terminal vous permet d’interagir avec le système d’exploitation via diverses commandes, ici nous donnerons juste un aperçu des plus utiles. Vous pourrez en utiliser davantage lors de la session 3 sur les permissions et fichiers.

Le modèle général pour une interface en ligne de commande est :

<prompt> <command> <param_1> <param_2> <param_3> ... <param_N>
  • <prompt> – Généré par le programme pour fournir un contexte à l’utilisateur. Il se termine généralement par l’un des caractères $, %, #, :, > ou -.
  • <command> – Fournie par l’utilisateur. Cela peut être :
    • Des commandes internes reconnues et traitées par l’interpréteur de commandes. Les commandes internes sont aussi appelées commandes intégrées.
    • Des commandes externes exécutant des exécutables trouvés dans des fichiers exécutables séparés (par exemple, python).
  • <param_1> ... <param_N> – paramètres fournis par l’utilisateur, si nécessaire.

Dans l’onglet ci-dessous, nous donnons les principales commandes que vous devez retenir pour utiliser le terminal de votre système d’exploitation préféré.

  • help – Oui, c’est une commande. Elle fournit soit la liste des commandes supportées, soit des détails sur une commande donnée (par exemple, demandez help cd). De plus, chacune des commandes suivantes affiche un bref texte d’aide lorsqu’elle est suivie de l’option /? (par exemple, tapez dir /?).
  • dir – Liste le contenu d’un répertoire.
  • cd – Change de répertoire (va dans le répertoire indiqué, par exemple, cd C:\Users\ ou cd .., où le répertoire spécial nommé .. signifie un pas en arrière dans la hiérarchie).
  • C:, D:, A: – Passe à la hiérarchie du lecteur attaché à la lettre, si actif.
  • mkdir (md)` – Crée un répertoire.
  • rmdir (rd)` – Supprime un répertoire.
  • copy – Copie un fichier ou un répertoire (notez aussi xcopy, une version étendue).
  • del – Supprime des fichiers.
  • ren – Renomme un fichier ou un répertoire.
  • tree – Affiche l’arborescence depuis votre position actuelle dans la hiérarchie.
  • more – Affiche la sortie écran par écran (utile quand vous avez beaucoup d’informations à afficher).
  • type – Affiche le contenu d’un fichier texte.
  • set – Affiche, définit ou supprime les variables d’environnement Windows.
  • systeminfo – Affiche les propriétés et la configuration spécifiques de la machine.
  • tasklist – Affiche toutes les tâches en cours d’exécution, y compris les services.
  • taskkill – Tue ou arrête un processus ou une application en cours d’exécution.
  • ver – Affiche la version de Windows.
  • vol – Affiche une étiquette de volume de disque et un numéro de série.
  • chkdsk – Vérifie un disque et affiche un rapport d’état (nécessite les droits administrateur).
  • exit – Pour quitter le terminal.
  • Help (Get-Help) – Fournit les détails sur une commande donnée (par exemple, demandez Get-Help cd).
  • Get-Command – Donne une liste complète de toutes les commandes ou cmdlets disponibles en PowerShell.
  • Get-ChildItem (dir, ls) – Liste le contenu d’un répertoire.
  • Set-Location (cd) – Change de répertoire (va dans le répertoire indiqué).
  • New-Item – Crée soit un fichier soit un répertoire, selon le paramètre -ItemType (par exemple, New-Item -ItemType Directory -Path new_directory).
  • Copy-Item (cp, copy) – Copie un fichier ou un répertoire.
  • Move-Item (mv, move) – Déplace un fichier ou un répertoire.
  • Get-Content (cat, type) – Affiche le contenu d’un fichier texte.
  • Select-String – Utilise la correspondance d’expressions régulières pour rechercher des motifs dans des chaînes d’entrée et des fichiers.
  • Get-ComputerInfo – Obtient un objet consolidé des propriétés du système et du système d’exploitation.
  • Get-Process (ps) – Affiche toutes les tâches en cours d’exécution, y compris les services.
  • Stop-Process (kill) – Tue ou arrête un processus ou une application en cours d’exécution.
  • Get-PSDrive – Obtient les lecteurs dans la session actuelle.
  • exit – Pour quitter le terminal.
  • help – Oui, c’est une commande. Elle fournit soit la liste des commandes supportées, soit des détails sur une commande donnée (par exemple, demandez help cd).
  • man – Affiche une page de manuel relative à une application ou au système. Unix a eu la bonne idée de fournir sa propre documentation officielle (par exemple, tapez man gedit, appuyez sur ‘Q’ pour quitter).
  • ls – Liste le contenu d’un répertoire.
  • cd – Change de répertoire (va dans le répertoire indiqué, par exemple, cd /home, ou cd .. où le nom spécial de répertoire .. signifie un pas en arrière dans la hiérarchie ; notez aussi le nom spécial ~ comme alias pour votre propre répertoire personnel).
  • pwd – Affiche le répertoire de travail, votre position actuelle dans la hiérarchie.
  • mkdir – Crée un répertoire.
  • rmdir – Supprime un répertoire.
  • cp – Copie un fichier ou un répertoire.
  • rm – Supprime des fichiers.
  • mv – Déplace un fichier ou un répertoire.
  • more – Affiche la sortie écran par écran (utile quand vous avez beaucoup d’informations à afficher).
  • cat – Concatène des fichiers et affiche sur la sortie standard.
  • grep – Recherche des motifs dans des fichiers.
  • uname – Affiche des informations système.
  • lscpu, lspci, lsblk – Listent respectivement les informations CPU, périphériques et dispositifs de bloc (disque dur).
  • ps – Affiche tous les processus en cours d’exécution.
  • kill – Tue ou arrête un processus ou une application en cours d’exécution.
  • df – Informe sur l’utilisation de l’espace disque du système de fichiers.
  • du – Estime l’utilisation de l’espace disque.
  • free – Affiche la quantité de mémoire libre et utilisée dans le système.
  • exit – Pour quitter le terminal.
  • help – Oui, c’est une commande. Elle fournit soit la liste des commandes supportées, soit des détails sur une commande donnée (par exemple, demandez help cd).
  • man – Affiche une page de manuel relative à une application ou au système. Unix a eu la bonne idée de fournir sa propre documentation officielle (par exemple, tapez man gedit, appuyez sur ‘Q’ pour quitter).
  • ls – Liste le contenu d’un répertoire.
  • cd – Change de répertoire (va dans le répertoire indiqué, par exemple, cd /home, ou cd .. où le nom spécial de répertoire .. signifie un pas en arrière dans la hiérarchie ; notez aussi le nom spécial ~ comme alias pour votre propre répertoire personnel).
  • pwd – Affiche le répertoire de travail, votre position actuelle dans la hiérarchie.
  • mkdir – Crée un répertoire.
  • rmdir – Supprime un répertoire.
  • cp – Copie un fichier ou un répertoire.
  • rm – Supprime des fichiers.
  • mv – Déplace un fichier ou un répertoire.
  • more – Affiche la sortie écran par écran (utile quand vous avez beaucoup d’informations à afficher).
  • cat – Concatène des fichiers et affiche sur la sortie standard.
  • grep – Recherche des motifs dans des fichiers.
  • uname – Affiche des informations système.
  • lscpu, lspci, lsblk – Listent respectivement les informations CPU, périphériques et dispositifs de bloc (disque dur).
  • ps – Affiche tous les processus en cours d’exécution.
  • kill – Tue ou arrête un processus ou une application en cours d’exécution.
  • df – Informe sur l’utilisation de l’espace disque du système de fichiers.
  • du – Estime l’utilisation de l’espace disque.
  • free – Affiche la quantité de mémoire libre et utilisée dans le système.
  • exit – Pour quitter le terminal.

Les commandes du système de fichiers seront expliquées plus en détail dans la session 3 sur les systèmes de fichiers et les permissions, et vous aurez l’occasion de les essayer tout au long de ce cours dédié.

Pour aller plus loin

3 — Tubes anonymes

Avec ces commandes, vous pouvez déjà utiliser votre système. Cependant, la plupart des systèmes d’exploitation supportent également ce que l’on appelle les tubes anonymes. Un tube anonyme est un canal de communication unidirectionnel typiquement utilisé pour la communication inter-processus (IPC) entre processus liés. Il est appelé “anonyme” car il n’a pas de nom dans le système de fichiers. Il existe uniquement en mémoire et est utilisé exclusivement par les processus qui l’ont créé.

Caractéristiques clés des tubes anonymes :

  • Unidirectionnel – Les données circulent dans une seule direction, de l’extrémité d’écriture du tube vers son extrémité de lecture.

  • Communication parent-enfant – Souvent utilisé pour la communication entre un processus parent et ses processus enfants. Par exemple, un processus parent peut créer un tube anonyme et forker un processus enfant, en passant le tube à l’enfant pour faciliter la communication.

  • Temporaire – Les tubes anonymes sont temporaires et cessent d’exister lorsque les processus créateurs se terminent.

  • Support multiplateforme – Supporté par la plupart des systèmes d’exploitation, y compris Windows, Linux et MacOS.

Dans les systèmes de type Unix comme MacOS ou Linux, les tubes anonymes sont fréquemment utilisés avec l’opérateur | du shell, où la sortie d’une commande est envoyée en entrée à une autre commande :

ls | grep <file_name>
ls | grep <file_name>

Dans cet exemple, la commande ls envoie sa sortie vers un tube anonyme, et grep lit depuis ce tube. Cela est utilisé pour rechercher dans un répertoire un fichier spécifique nommé <file_name>.

Pour aller encore plus loin