Le terminal, c'est le même ordinateur — mais sans la souris. Au lieu de cliquer sur des dossiers, tu tapes des commandes. Claude Code vit dans cet environnement : tout ce qu'il fait, il le fait ici.
mkdir mon-dossier. C'est exactement la même action, écrite au lieu d'être cliquée.
clique sur un dossier ↑
↑ l'équivalent écrit
Il en existe plusieurs, et ils ne parlent pas tous la même langue. Les commandes de cette formation
(ls, grep, cat…) sont celles du monde Unix : macOS et Linux les ont nativement, Windows a besoin d'un petit coup de pouce.
⌘ + espace, tape « Terminal ». Toutes les commandes de ce module fonctionnent telles quelles.
Installé avec Git. Il te donne les commandes Unix sur Windows — c'est le plus simple pour suivre cette formation et lancer Claude Code sans surprise.
Il fonctionne, mais certaines commandes changent de nom : ls existe (alias), grep devient Select-String, touch n'existe pas. À éviter tant que tu débutes.
Un vrai Linux dans Windows. Excellent, mais l'installation ajoute une étape. Git Bash suffit largement pour démarrer.
Le même terminal, mais dans ton éditeur (Ctrl + ù, ou Terminal → Nouveau terminal). C'est là que tu lanceras Claude Code 90 % du temps : le code et le terminal côte à côte.
cd mon-projet, puis claude. Se tromper de dossier, c'est la cause n°1 des « il ne trouve pas mes fichiers ».
Les fichiers sont rangés dans des dossiers imbriqués, comme des poupées russes. Chaque fichier a donc un chemin unique — son adresse. Voici la structure d'un projet typique, celle qu'on va manipuler tout au long du module.
En bleu. Ils contiennent d'autres fichiers ou dossiers. src/ = le code source, public/ = les images et fichiers statiques.
La carte d'identité du projet : son nom, ses dépendances, ses commandes. Claude le lit presque toujours en premier.
Les secrets : clés API, mots de passe. Le point devant = fichier caché. ls ne le montre pas, ls -a si. Jamais sur GitHub.
/Users/jean/mon-projet/src/index.js part de la racine du disque (absolu). src/index.js part de là où tu te trouves (relatif). Dans un terminal, on travaille presque toujours en relatif.
pwd & lsLes deux premières questions dans un terminal : où suis-je ? et qu'est-ce qu'il y a ici ? Clique sur les boutons pour voir ce que chaque commande affiche vraiment.
-a) et les détails : droits, taille, date (-l).-l + -a = -la. Tu retrouveras cette logique sur toutes les commandes.
cd : changer de dossier
cd = Change Directory. Clique sur les boutons : regarde le terminal
et l'arbre se mettre à jour en même temps. Le badge « ← ici » montre toujours où tu te trouves.
.. = le dossier parent. . = le dossier courant. ~ = ton dossier personnel. Tu ne peux rien casser en te déplaçant.
touch, mkdir & rmtouch crée un fichier vide, mkdir crée un dossier, rm supprime. Regarde l'arbre se transformer en direct à chaque clic.
-p crée toute la chaîne de dossiers d'un coup, même les parents manquants.rm supprime un fichier ; -r ajoute les dossiers et tout leur contenu.rm est irréversible. Pas de corbeille, pas de Ctrl+Z : le fichier disparaît. Claude Code te demande systématiquement ton accord avant d'exécuter une commande destructive — lis-la avant de valider, surtout si tu y vois -rf.
cat : afficher le contenu d'un fichier
Pas besoin d'ouvrir ton éditeur pour jeter un œil à un fichier. cat le déverse directement dans le terminal.
C'est exactement ce que fait Claude quand il « lit » un fichier de ton projet.
cat .env : tu viens d'afficher tes clés secrètes en clair dans le terminal. Si tu partages ton écran, fais un screenshot ou colles une sortie de terminal dans un chat — elles fuitent. Ce réflexe vaut aussi quand tu échanges avec une IA.
find : où est passé ce fichier ?
Tu sais qu'un fichier existe quelque part, mais tu ne sais plus dans quel dossier.
find fouille toute l'arborescence à partir d'un point de départ, en cherchant sur le nom du fichier.
* = « n'importe quoi » → tout fichier finissant par .js
*.js = tous les fichiers JS. src/**/*.test.js = tous les fichiers de test, à n'importe quelle profondeur sous src/. Ce langage de motifs s'appelle un glob — et c'est littéralement le nom de l'outil que Claude utilise pour chercher des fichiers.
grep : chercher dans les fichiers
find cherche un fichier par son nom. grep, lui, cherche un texte à l'intérieur de tous les fichiers.
C'est la commande qui répond à « où est utilisée cette fonction ? » — et de loin la plus utilisée par Claude Code.
Client trouve aussi client.rg (ripgrep) fait la même chose en beaucoup plus rapide, et ignore automatiquement node_modules et tout ce qui est dans ton .gitignore. C'est exactement ce que Claude Code utilise sous le capot quand il cherche dans ton projet.
formatClient partout », Claude commence par un grep. Si tu lui donnes directement le bon terme à chercher, il trouve du premier coup — moins d'allers-retours, moins de tokens, un meilleur résultat.
La vraie puissance du terminal : chaque commande est une petite brique, et on peut les brancher les unes aux autres. Tu n'as pas besoin de les maîtriser — juste de les reconnaître quand Claude en écrit une.
| Le tuyau (pipe)Envoie la sortie de la commande de gauche dans l'entrée de celle de droite.
« Liste src, et dans cette liste, ne garde que les lignes contenant test. »
> La redirectionÉcrit le résultat dans un fichier au lieu de l'afficher. >> ajoute à la fin sans écraser.
Très pratique pour garder une trace d'une sortie longue.
&& L'enchaînement conditionnelLance la suivante seulement si la précédente a réussi.
Si cd échoue, rien ne s'exécute derrière. Tu verras cette forme très souvent.
Quand Claude te propose grep -rn "TODO" src/ | head -n 20, tu sais maintenant lire : « cherche TODO dans src, avec les numéros de ligne, et ne montre que les 20 premiers résultats ».
Savoir lire une commande suffit. C'est ça qui te permet de valider ou de refuser en connaissance de cause.
--help après n'importe quelle commande affiche son mode d'emploi (grep --help). Et Ctrl + C interrompt une commande qui tourne trop longtemps — un réflexe à avoir dès maintenant.
Quand tu vois « Searching… » ou « Reading… » défiler, Claude fait exactement ce que tu viens d'apprendre. Il dispose d'outils dédiés, mais chacun a son équivalent terminal :
src/utils.js »formatClient ? »Les commandes défilent à l'écran. Tu les lis, tu sais où il cherche et pourquoi il ne trouve pas.
« Cherche formatClient dans src/ » vaut dix fois mieux que « regarde partout ». Moins de détours, moins de tokens.
Claude demande l'autorisation avant les commandes sensibles. Encore faut-il savoir lire un rm -rf.
pwd pour vérifier où tu es, cd vers la racine de ton projet, et relance claude.
Un vrai terminal simulé, avec toutes les commandes du module. Tape-les ou clique sur les raccourcis : l'arbre à gauche se met à jour en temps réel. Rien de ce que tu fais ici ne touche ton ordinateur.
pwd · ls -a -l · cd · mkdir · touch · rm -r · cat · head · wc -l · find · grep -r -n -i · tree · clear
5 questions pour valider le module. Tu peux te tromper : l'important, c'est de comprendre pourquoi.
1. Tu veux savoir dans quel dossier tu te trouves. Quelle commande ?
lspwdcd2. Tu es dans mon-projet/src. Comment revenir dans mon-projet ?
cd mon-projetcd ..cd /3. Tu veux créer un fichier vide notes.md. Quelle commande ?
mkdir notes.mdtouch notes.mdcat notes.md4. Tu cherches où la fonction envoyerEmail est utilisée dans ton projet. Quelle commande ?
find . -name "envoyerEmail"grep -rn "envoyerEmail" .ls -la envoyerEmail5. Claude Code « ne trouve pas » un fichier qui existe pourtant. Le réflexe le plus probable ?
pwd que je l'ai lancé depuis la racine du projet