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

Commande, argument, option : lire une ligne de commande

Toute ligne de commande a la même grammaire. Une fois vue, tu peux lire n’importe quelle commande, y compris celles que Claude Code te demande d’approuver.

Objectifs

  • Découper une ligne en commande, options et arguments
  • Comprendre les tirets (-a, --all) et les valeurs
  • Lire une commande inconnue sans paniquer

Une ligne de commande, c'est une phrase à la structure fixe :

commande  [options]  [arguments]
  • La commande est le verbe : ls (lister), cd (changer de dossier), git (le programme Git).
  • Les options (ou flags, drapeaux) modifient le comportement. Elles commencent par un tiret : -a (forme courte) ou --all (forme longue). Certaines prennent une valeur : --name projet.
  • Les arguments sont les compléments : sur quoi la commande travaille. cd Documents → Documents est l'argument.

Exemple : ls -la Documents = commande ls, options -l et -a (collées en -la), argument Documents. Traduction : « liste, en détail, y compris les fichiers cachés, le contenu de Documents ».

Les espaces séparent les mots. C'est pour ça qu'un nom de dossier avec un espace pose problème : cd Mes Documents est lu comme « va dans Mes » avec un argument en trop. Solution : des guillemets, cd "Mes Documents", ou pas d'espaces dans tes noms de dossiers de projet (on y reviendra).

Le shell découpe ta ligne sur les espaces et passe la liste des mots au programme. C'est le programme (ls, git…) qui décide ce que signifient -a ou status. Il n'y a donc pas de règle universelle : -r veut dire « récursif » pour cp mais « inverser l'ordre » pour sort. Quand tu doutes, tu demandes au programme lui-même :

ls --help
git status --help

Sur macOS et Linux, man ls ouvre le manuel (quitte avec q). Sur Windows, Get-Help Get-ChildItem.

Les programmes en CLI ont souvent des sous-commandes : dans git commit -m "message", git est le programme, commit la sous-commande, -m une option qui prend la valeur "message". Claude Code aussi : claude mcp list = programme claude, sous-commande mcp, sous-sous-commande list.

Décortiquons trois lignes que tu rencontreras vite :

LigneCommandeOptionsArgumentsTraduction
mkdir -p projets/sitemkdir-p (crée les parents)projets/sitecrée le dossier site dans projets, en créant projets si besoin
git log --oneline -5git (sous-commande log)--oneline, -5—affiche les 5 derniers commits, une ligne chacun
claude --permission-mode planclaude--permission-mode avec la valeur plan—lance Claude Code en mode plan (il analyse sans modifier)

Dans le terminal d'entraînement ci-dessous, essaie ces variantes et observe ce qui change à chaque option ajoutée :

ls
ls -a
ls -l
ls -la
ls -la documents

Quand Claude Code veut exécuter une commande, il te l'affiche et te demande la permission (sauf en mode auto). Tu dois pouvoir la lire : rm -rf node_modules (supprimer récursivement, sans confirmation, le dossier node_modules) n'a pas la même portée que rm -rf /. Savoir découper une commande, c'est savoir dire oui ou non en connaissance de cause. C'est une compétence de sécurité, pas un détail.

Erreurs courantes

ls: illegal option -- x (ou : option inconnue)

Tu as passé une option que ce programme ne connaît pas (souvent une faute de frappe, ou une option d’un autre système).

Vérifie avec --help. Sur macOS, certaines options GNU (Linux) n’existent pas.

cd: too many arguments

Un espace dans le nom de dossier a créé deux arguments.

Mets le nom entre guillemets : cd "Mes Documents".

À retenir

  • commande [options] [arguments] — le verbe, ses réglages, ses compléments.
  • Les options commencent par un tiret (-a) ou deux (--all) ; leur sens dépend du programme : --help pour vérifier.
  • Les espaces séparent les mots ; un nom avec espace se met entre guillemets.
  • Lire une commande avant de l’approuver est la base de la sécurité avec Claude Code.