Parcours 0 — Avant de commencer · leçon gratuite · 10 min

CLI, shell, console, terminal : qui fait quoi ?

Quatre mots que tout le monde mélange. Une fois séparés, les messages d’erreur deviennent lisibles.

Objectifs

  • Distinguer terminal, shell, console et CLI
  • Reconnaître ton shell (zsh, bash, PowerShell) à l’invite
  • Comprendre pourquoi une commande marche sur un ordinateur et pas sur un autre
  • Terminal : la fenêtre. Elle affiche du texte et transmet tes frappes.
  • Shell : le programme qui tourne dans cette fenêtre, lit ce que tu tapes, et l'exécute. Il en existe plusieurs : bash, zsh, fish sur macOS et Linux ; PowerShell et l'ancien CMD sur Windows.
  • Console : mot ancien pour la même idée que terminal. Dans un navigateur web, « la console » désigne aussi le panneau des outils de développement où s'affichent les erreurs JavaScript. Le contexte dit lequel.
  • CLI (Command Line Interface, interface en ligne de commande) : se dit d'un programme qu'on utilise en tapant des commandes plutôt qu'en cliquant. Git est un outil en CLI. Claude Code est un outil en CLI. À l'inverse, VS Code a une interface graphique (GUI).

Résumé en une phrase : dans un terminal, un shell exécute des commandes, dont certaines lancent des CLI comme git ou claude.

Le shell est un interprète. Il lit la ligne git status, découpe en mots (git, status), cherche un programme nommé git dans une liste de dossiers connus (le PATH, on y revient dans la leçon sur les variables d'environnement), le lance en lui passant le mot status, puis affiche ce que git renvoie.

C'est pour ça qu'une commande peut marcher chez un collègue et pas chez toi : soit le programme n'est pas installé, soit le shell ne sait pas où il est, soit vous n'utilisez pas le même shell et la syntaxe diffère. Les trois cas donnent des messages différents, et tu apprendras à les reconnaître.

ShellOùInvite typiqueExemple de différence
zshmacOS (par défaut depuis 2019)nom@Mac dossier %proche de bash
bashLinux, Git Bash sur Windows, WSLnom@machine:~$référence de la plupart des tutoriels
PowerShellWindowsPS C:\Users\nom>commandes Verbe-Nom (Get-ChildItem) avec alias (ls, dir)
CMDWindows (ancien)C:\Users\nom>dir, copy, pas de ls

Le même besoin — « liste les fichiers cachés » — dans trois shells :

ls -a
Get-ChildItem -Force
dir /a

Trois syntaxes, une idée. Dans cette formation, chaque commande importante est donnée pour bash/zsh et pour PowerShell. CMD n'est pas traité : sur Windows, utilise PowerShell (ou Git Bash, qui parle bash).

Identifie ton shell. Tape la commande correspondant à ton système :

echo $SHELL

Réponse attendue : /bin/zsh (ou /bin/bash sur un Mac ancien).

$PSVersionTable.PSVersion

Si tu vois un numéro de version (5.1, 7.4…), tu es dans PowerShell. Si tu vois une erreur, tu es probablement dans CMD : ferme et ouvre « PowerShell » ou « Windows Terminal ».

echo $SHELL

Réponse attendue : /bin/bash le plus souvent.

Claude Code s'adapte au shell disponible. Sur macOS et Linux il exécute ses commandes via bash. Sur Windows, il utilise Git Bash si Git pour Windows est installé, sinon PowerShell. Ça compte : les exemples de commandes qu'il te proposera d'approuver seront écrits dans ce shell-là. La leçon d'installation t'aidera à choisir.

Erreurs courantes

The token '&&' is not a valid statement separator

Tu es dans PowerShell mais la commande a été écrite pour CMD ou bash (PowerShell 5 ne connaît pas && ; PowerShell 7 l’accepte).

Exécute les deux commandes séparément, l’une après l’autre, ou passe à PowerShell 7 / Git Bash.

'ls' n'est pas reconnu en tant que commande interne ou externe

Tu es dans CMD, qui ne connaît pas ls.

Ouvre PowerShell (qui accepte ls comme alias) ou tape dir.

zsh: command not found: xyz

Le shell (zsh) ne trouve aucun programme nommé xyz.

Vérifie l’orthographe ; si c’est un programme que tu viens d’installer, ferme et rouvre le terminal.

À retenir

  • Terminal = la fenêtre. Shell = le programme qui interprète tes commandes. CLI = un programme qui s’utilise en ligne de commande.
  • macOS → zsh, Linux → bash, Windows → PowerShell. Les commandes de base existent partout, la syntaxe change parfois.
  • Le début de ta ligne (%, $, PS C:\>) te dit dans quel shell tu es. Regarde-le avant de coller une commande trouvée sur internet.