Perdu dans ses propres dossiers
Vous avez ouvert un terminal, vous tapez une commande... et rien ne se passe comme prévu. « Fichier introuvable », alors que vous le voyez pourtant dans votre explorateur. Le coupable est presque toujours le même : vous n'êtes pas dans le bon dossier.
Le terminal a toujours une position : un dossier courant. Toutes vos commandes s'exécutent depuis cet endroit. Maîtriser une poignée de commandes de navigation et de manipulation de fichiers, c'est arrêter de tâtonner et savoir exactement où vous êtes et ce que vous faites.
Voici la boîte à outils du quotidien. Une dizaine de commandes suffisent pour 90 % du travail.
Naviguer entre les dossiers
Quatre commandes pour se déplacer et regarder autour de soi :
$ pwd # où suis-je ?
/home/alice
$ ls -la # tout lister, même les fichiers cachés
total 12
drwxr-xr-x 4 alice alice 4096 mai 28 09:12 .
drwxr-xr-x 20 alice alice 4096 mai 20 18:03 ..
-rw-r--r-- 1 alice alice 220 mai 12 11:00 .bashrc
drwxr-xr-x 3 alice alice 4096 mai 28 09:12 projets
$ cd projets # entrer dans un dossier
$ cd .. # remonter d'un cran
ls -la affiche aussi les fichiers cachés (ceux qui commencent par un point) et les détails : droits, propriétaire, taille, date. cd .. remonte au dossier parent : les deux points signifient « le dossier au-dessus ».
Créer, copier, déplacer, supprimer
La manipulation de fichiers tient en cinq commandes :
$ mkdir mon-site # créer un dossier
$ cd mon-site
$ touch index.html # créer un fichier vide
$ cp index.html sauvegarde.html # copier
$ mv sauvegarde.html backup.html # renommer ou déplacer
$ rm backup.html # supprimer un fichier
mkdir crée un dossier, touch un fichier vide, cp copie, mv déplace ou renomme (c'est la même commande), et rm supprime. Simple et logique une fois qu'on connaît les noms.
Attention : rm supprime définitivement. Il n'y a pas de corbeille en ligne de commande. La commande rm -rf un-dossier efface un dossier entier et tout son contenu, sans confirmation et sans retour possible. Relisez toujours un rm avant d'appuyer sur Entrée, surtout avec un chemin absolu.
Lire le contenu d'un fichier
Pas besoin d'ouvrir un éditeur pour jeter un œil à un fichier :
$ cat README.md # afficher tout le fichier d'un coup
$ less journal.log # parcourir page par page (q pour quitter)
$ head -n 5 data.csv # les 5 premières lignes
$ tail -n 20 erreurs.log # les 20 dernières lignes
cat déverse tout le contenu, parfait pour les petits fichiers. less ouvre une vue défilante pour les gros fichiers. head et tail montrent le début ou la fin : très pratique pour surveiller des journaux d'erreurs.
Quand un doute survient : man
Chaque commande a un manuel intégré. Pour le consulter, tapez man suivi du nom de la commande :
$ man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
...
(appuyez sur q pour quitter)
Le manuel liste toutes les options disponibles. C'est dense, parfois aride, mais c'est la source de vérité. Et si man vous semble trop technique, c'est exactement le genre de question que l'IA explique très bien en clair.
Lost in your own folders
You opened a terminal, you type a command... and nothing works as expected. "File not found", even though you can clearly see it in your file explorer. The culprit is almost always the same: you are not in the right folder.
The terminal always has a position: a current folder. All your commands run from there. Mastering a handful of navigation and file commands means you stop fumbling and always know exactly where you are and what you are doing.
Here is the everyday toolbox. About ten commands cover 90% of the work.
Navigating between folders
Four commands to move around and look at your surroundings:
$ pwd # where am I?
/home/alice
$ ls -la # list everything, even hidden files
total 12
drwxr-xr-x 4 alice alice 4096 may 28 09:12 .
drwxr-xr-x 20 alice alice 4096 may 20 18:03 ..
-rw-r--r-- 1 alice alice 220 may 12 11:00 .bashrc
drwxr-xr-x 3 alice alice 4096 may 28 09:12 projects
$ cd projects # enter a folder
$ cd .. # go up one level
ls -la also shows hidden files (those starting with a dot) and the details: permissions, owner, size, date. cd .. goes up to the parent folder: the two dots mean "the folder above".
Create, copy, move, delete
File manipulation comes down to five commands:
$ mkdir my-site # create a folder
$ cd my-site
$ touch index.html # create an empty file
$ cp index.html backup.html # copy
$ mv backup.html save.html # rename or move
$ rm save.html # delete a file
mkdir creates a folder, touch an empty file, cp copies, mv moves or renames (same command), and rm deletes. Simple and logical once you know the names.
Warning: rm deletes permanently. There is no trash bin on the command line. The command rm -rf a-folder wipes an entire folder and everything in it, with no confirmation and no way back. Always re-read an rm before pressing Enter, especially with an absolute path.
Reading a file's contents
No need to open an editor just to peek at a file:
$ cat README.md # print the whole file at once
$ less app.log # browse page by page (q to quit)
$ head -n 5 data.csv # the first 5 lines
$ tail -n 20 errors.log # the last 20 lines
cat dumps the whole content, perfect for small files. less opens a scrollable view for big files. head and tail show the start or the end: very handy for watching log files.
When in doubt: man
Every command has a built-in manual. To read it, type man followed by the command name:
$ man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
...
(press q to quit)
The manual lists every available option. It is dense, sometimes dry, but it is the source of truth. And if man feels too technical, this is exactly the kind of question AI explains very clearly.
Une commande vous renvoie une erreur incompréhensible ? Collez-la à l'IA avec ce prompt :
Je suis débutant sur le terminal Linux. J'ai tapé cette commande : cp index.html ../sauvegarde/ et j'obtiens cette erreur : cp: cannot create regular file '../sauvegarde/': No such file or directory. Explique-moi en français ce que signifie l'erreur, pourquoi elle arrive, et donne-moi la commande exacte à taper pour corriger.
Sans relire le prompt ci-dessus : pour qu'une IA t'aide vraiment sur une erreur de terminal, quelles informations dois-tu lui donner ? Que signifie concrètement l'erreur No such file or directory sur un cp ?
cp ... ../sauvegarde/, l'erreur No such file or directory veut dire que le dossier de destination ../sauvegarde/ n'existe pas : cp ne crée pas les dossiers manquants. Le correctif : créer la cible avec mkdir ../sauvegarde avant de copier.Écrivez les commandes pour : créer un dossier mon-site, y entrer, créer un fichier index.html vide, puis afficher son contenu. Utilisez mkdir, cd, touch et cat.
Tu demandes à l'IA comment « vider le dossier build avant de regénérer le site ». Elle te répond ceci, à coller dans ton terminal. Ton rôle de relecteur : l'accepter tel quel ou le rejeter, et dire pourquoi.
cd ~/projets/mon-site
rm -rf $BUILD_DIR/*
$BUILD_DIR : si cette variable n'est pas définie, le shell la remplace par du vide et la commande devient rm -rf /*, qui tente d'effacer la racine du système, définitivement et sans confirmation (la leçon le rappelle : rm n'a pas de corbeille). Avant d'accepter un rm -rf de l'IA, exige un chemin littéral et explicite (rm -rf build/*, jamais une variable non vérifiée), et relis-le toujours avant Entrée.Sans remonter dans la leçon : quelle commande affiche le dossier où tu te trouves, et que fait cd .. ? Pourquoi rm mérite-t-il plus de prudence que sur un explorateur graphique ?
pwd (print working directory) affiche le dossier courant. cd .. remonte d'un cran vers le dossier parent (les deux points = « le dossier au-dessus »). rm demande de la prudence parce qu'il supprime définitivement : pas de corbeille, pas de confirmation, et un rm -rf efface un dossier entier d'un coup, sans retour possible.You can move around and handle your files from the command line without flinching. But how do you keep track of every change without drowning your project under copies named final-version-v3? That is exactly what Git is for, and we discover it in the next lesson.
Lesson 3: Why Git →