← Retour Le Terminal 1 / 13
Introduction

C'est quoi un terminal ?

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.

💡 L'analogie clé : un clic droit → « Nouveau dossier » = taper mkdir mon-dossier. C'est exactement la même action, écrite au lieu d'être cliquée.
🖥️  Interface graphique
📁 mon-projet
📁 Documents
📁 Desktop

clique sur un dossier ↑

⟺
⬛  Terminal
~ $

↑ l'équivalent écrit

🎯 À retenir : le terminal n'est ni dangereux ni réservé aux experts. C'est juste une autre façon de parler à ton ordinateur — plus rapide, plus précise, et surtout automatisable. C'est pour ça que Claude Code l'utilise.
Avant de commencer

Quel terminal j'ouvre ?

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.

🍎

macOS · Terminal ou iTerm2 prêt à l'emploi

⌘ + espace, tape « Terminal ». Toutes les commandes de ce module fonctionnent telles quelles.

🪟

Windows · Git Bash recommandé

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.

⌨️

Windows · PowerShell syntaxe différente

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.

🐧

Windows · WSL option avancée

Un vrai Linux dans Windows. Excellent, mais l'installation ajoute une étape. Git Bash suffit largement pour démarrer.

📝

Le terminal intégré de VS Code / Cursor

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.

⚠️ Le point qui compte vraiment : quel que soit le terminal, Claude Code prend comme racine le dossier depuis lequel tu le lances. Tu fais cd mon-projet, puis claude. Se tromper de dossier, c'est la cause n°1 des « il ne trouve pas mes fichiers ».
Concept fondamental

L'arborescence : tes fichiers ont une adresse

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.

📁 Les dossiers

En bleu. Ils contiennent d'autres fichiers ou dossiers. src/ = le code source, public/ = les images et fichiers statiques.

⚙️ package.json

La carte d'identité du projet : son nom, ses dépendances, ses commandes. Claude le lit presque toujours en premier.

🔒 .env

Les secrets : clés API, mots de passe. Le point devant = fichier caché. ls ne le montre pas, ls -a si. Jamais sur GitHub.

📍 Chemin absolu vs relatif : /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.
Commandes 1 & 2 · s'orienter

pwd & ls

Les 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.

bash — ~/mon-projet
~/mon-projet $
pwd
Print Working Directory : affiche ta position exacte.
/Users/jean/mon-projet
ls
List : liste le contenu du dossier courant.
src/ public/ package.json …
ls -la
Avec les fichiers cachés (-a) et les détails : droits, taille, date (-l).
-rw-r--r-- 1.2K .env
ls dossier
Regarder dans un autre dossier sans s'y déplacer.
ls src
💡 Les options : le tiret introduit une option qui modifie le comportement. On peut les coller : -l + -a = -la. Tu retrouveras cette logique sur toutes les commandes.
Commande 3 · se déplacer

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.

📁 Arborescence
bash
~/mon-projet $
✅ .. = le dossier parent. . = le dossier courant. ~ = ton dossier personnel. Tu ne peux rien casser en te déplaçant.
⌨️ Le réflexe qui change tout : tape les 2 premières lettres puis Tab — le terminal complète le nom tout seul. Deux Tab affichent les possibilités. Et ↑ rappelle la commande précédente.
Commandes 4, 5 & 6 · créer et supprimer

touch, mkdir & rm

touch crée un fichier vide, mkdir crée un dossier, rm supprime. Regarde l'arbre se transformer en direct à chaque clic.

📁 Arborescence · en direct
bash — ~/mon-projet
~/mon-projet $
touch
Crée un fichier vide. S'il existe déjà, il ne l'écrase pas : il met juste sa date à jour.
touch src/api.js
mkdir -p
L'option -p crée toute la chaîne de dossiers d'un coup, même les parents manquants.
mkdir -p src/pages/admin
rm -r
rm supprime un fichier ; -r ajoute les dossiers et tout leur contenu.
rm -r vieux-dossier
⚠️ 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.
Commande 7 · lire sans ouvrir

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.

bash — ~/mon-projet
~/mon-projet $
cat
Affiche tout le fichier. Parfait pour les petits fichiers de config.
cat package.json
head / tail
Les N premières / dernières lignes. Indispensable sur un gros fichier de logs.
tail -n 20 erreurs.log
wc -l
Compte les lignes. Pratique pour mesurer la taille d'un fichier avant de l'ouvrir.
wc -l src/index.js
🔒 Attention avec 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.
Commande 8 · retrouver un fichier

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.

bash — ~/mon-projet
~/mon-projet $

🧩 Décortiquons la commande

find . -name "*.js"
findla commande de recherche par nom .où chercher : « ici et dans tous les sous-dossiers » -namele critère : on filtre sur le nom du fichier "*.js"le motif. * = « n'importe quoi » → tout fichier finissant par .js
⭐ L'étoile, tu la reverras partout : *.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.
Commande 9 · la plus utile de toutes

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.

bash — ~/mon-projet
~/mon-projet $
-r
Recursive : descend dans tous les sous-dossiers au lieu d'un seul fichier.
-n
Number : affiche le numéro de ligne. Tu peux sauter direct au bon endroit.
-i
Insensitive : ignore majuscules/minuscules. Client trouve aussi client.
🚀 Le successeur moderne : 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.
🔍 Pourquoi ça compte pour toi : quand tu demandes « renomme 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.
Niveau supérieur · assembler

Enchaîner les commandes

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.

ls src | grep test

« 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.

npm test > resultats.txt

Très pratique pour garder une trace d'une sortie longue.

&&  L'enchaînement conditionnel

Lance la suivante seulement si la précédente a réussi.

cd mon-projet && npm install && npm run dev

Si cd échoue, rien ne s'exécute derrière. Tu verras cette forme très souvent.

🧠  Ce qu'il faut retenir

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.

💡 Bloqué ? --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.
Le lien avec Claude Code

Ce que Claude tape vraiment

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 :

« Lis-moi le fichier src/utils.js »
Read
cat src/utils.js
« Trouve tous les fichiers de test »
Glob
find . -name "*.test.js"
« Où est utilisée la fonction formatClient ? »
Grep
rg -n "formatClient"
« Qu'est-ce qu'il y a dans ce projet ? »
Bash
ls -la
« Installe les dépendances et lance les tests »
Bash
npm install && npm test

👀 Tu comprends ce qu'il fait

Les commandes défilent à l'écran. Tu les lis, tu sais où il cherche et pourquoi il ne trouve pas.

🎯 Tu le guides mieux

« Cherche formatClient dans src/ » vaut dix fois mieux que « regarde partout ». Moins de détours, moins de tokens.

🛡️ Tu valides en connaissance de cause

Claude demande l'autorisation avant les commandes sensibles. Encore faut-il savoir lire un rm -rf.

📍 Le piège classique : Claude ne voit que le dossier depuis lequel tu l'as lancé. S'il « ne trouve pas » un fichier qui existe pourtant, ton premier réflexe : quitte, fais pwd pour vérifier où tu es, cd vers la racine de ton projet, et relance claude.
Pratique libre

Terrain de jeu

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.

📁 Arborescence
bash — bac à sable
~ $
💡 Disponibles : pwd · ls -a -l · cd · mkdir · touch · rm -r · cat · head · wc -l · find · grep -r -n -i · tree · clear
Validation

Quiz

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 ?

Als
Bpwd
Ccd

2. Tu es dans mon-projet/src. Comment revenir dans mon-projet ?

Acd mon-projet
Bcd ..
Ccd /

3. Tu veux créer un fichier vide notes.md. Quelle commande ?

Amkdir notes.md
Btouch notes.md
Ccat notes.md

4. Tu cherches où la fonction envoyerEmail est utilisée dans ton projet. Quelle commande ?

Afind . -name "envoyerEmail"
Bgrep -rn "envoyerEmail" .
Cls -la envoyerEmail

5. Claude Code « ne trouve pas » un fichier qui existe pourtant. Le réflexe le plus probable ?

ARéinstaller Claude Code
BVérifier avec pwd que je l'ai lancé depuis la racine du projet
CSupprimer le fichier et le recréer
5/5
bonne(s) réponse(s) sur 5
✅ Module terminé — retour à l'accueil