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 --helpSur 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 :
| Ligne | Commande | Options | Arguments | Traduction |
|---|---|---|---|---|
| mkdir -p projets/site | mkdir | -p (crée les parents) | projets/site | crée le dossier site dans projets, en créant projets si besoin |
| git log --oneline -5 | git (sous-commande log) | --oneline, -5 | — | affiche les 5 derniers commits, une ligne chacun |
| claude --permission-mode plan | claude | --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 documentsQuand 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.