Linux et le shell
Introduction
Avant l'apparition des interfaces graphiques, on pilotait l'ordinateur en
tapant des commandes dans un terminal. Cette manière d'interagir n'a pas
disparu — au contraire, elle reste l'outil quotidien de toute personne qui
développe, administre des serveurs ou automatise des tâches. Le programme qui
lit vos commandes et les exécute s'appelle un shell (sous Linux, le plus
courant est bash). Ce cours vous donne les gestes essentiels pour
naviguer dans une arborescence, manipuler des fichiers et chaîner des outils.
Anatomie d'une commande
Une commande se compose toujours des mêmes éléments.
ls -l /home/alice
ls: le nom du programme à exécuter (ici, lister les fichiers).-l: une option (ou flag), qui modifie le comportement (ici, format long avec détails)./home/alice: l'argument, ce sur quoi la commande agit (ici, le répertoire à lister).
Le shell affiche un prompt qui se termine généralement par $ (utilisateur
normal) ou # (super-utilisateur). C'est l'invitation à taper votre commande.
alice@nsi-rocks:~$ ls -l /home/alice
ls et LS sont deux commandes différentes
pour le shell Unix. Idem pour les noms de fichiers : Notes.txt et
notes.txt peuvent coexister dans le même répertoire.Naviguer dans l'arborescence
Trois commandes suffisent pour vous orienter et vous déplacer.
| Commande | Rôle |
|---|---|
pwd | Print working directory — afficher le répertoire courant. |
ls | List — lister le contenu du répertoire. |
cd | Change directory — changer de répertoire. |
$ pwd
/home/alice
$ ls
documents images notes.txt
$ cd documents
$ pwd
/home/alice/documents
Quelques raccourcis essentiels pour cd :
cd ..: remonter d'un cran dans l'arborescence.cd ~oucdtout seul : retourner dans votre répertoire personnel.cd /: aller à la racine.cd -: retourner au répertoire précédent.
Quelle commande remonte d'un niveau dans l'arborescence ?
Manipuler les fichiers
Quatre commandes couvrent l'essentiel des manipulations.
| Commande | Rôle |
|---|---|
cp source dest | Copier un fichier. |
mv source dest | Déplacer ou renommer. |
rm fichier | Supprimer. |
mkdir dossier | Créer un répertoire. |
$ mkdir backup
$ cp notes.txt backup/notes.txt
$ mv notes.txt notes-2026.txt
$ ls
backup documents images notes-2026.txt
$ rm backup/notes.txt
$ rmdir backup
rm est définitif sous Linux. Il n'y a pas de corbeille en ligne de
commande — un fichier supprimé est perdu. Soyez particulièrement vigilant
avec rm -r (récursif, qui supprime un dossier entier) et rm -rf / (ne
tapez jamais cette commande : elle tente de supprimer tout le système).Lire et explorer un fichier
| Commande | Rôle |
|---|---|
cat fichier | Afficher le contenu intégral. |
less fichier | Lire un fichier long page par page (q pour quitter). |
head -n 5 fichier | Afficher les 5 premières lignes. |
tail -n 5 fichier | Afficher les 5 dernières lignes. |
$ cat notes-2026.txt
Lundi : cours de NSI
Mardi : devoir sur les graphes
Mercredi : projet de groupe
$ head -n 1 notes-2026.txt
Lundi : cours de NSI
Chemins absolus et chemins relatifs
Un chemin absolu commence par / et décrit le chemin complet depuis
la racine : /home/alice/documents/notes.txt.
Un chemin relatif part du répertoire courant : si vous êtes dans
/home/alice, le chemin documents/notes.txt désigne le même fichier.
| Notation | Sens |
|---|---|
. | Le répertoire courant |
.. | Le répertoire parent |
~ | Votre répertoire personnel |
/ | La racine du système |
$ pwd
/home/alice/documents
$ cd ../images # équivaut à cd /home/alice/images
$ cd ~/documents # équivaut à cd /home/alice/documents
Les pipes : enchaîner les outils
La grande force du shell Unix est de chaîner plusieurs commandes en
connectant la sortie de l'une à l'entrée de la suivante. Cet
enchaînement utilise le caractère pipe : |.
$ cat notes-2026.txt | head -n 2
Lundi : cours de NSI
Mardi : devoir sur les graphes
La commande cat envoie tout le contenu du fichier sur sa sortie ; le pipe
redirige cette sortie vers head, qui n'en garde que les 2 premières lignes.
Un exemple plus parlant : compter combien de fichiers .py sont présents
dans le répertoire courant.
$ ls | grep ".py" | wc -l
12
Décomposition :
lsliste tous les fichiers.grep ".py"ne garde que ceux qui contiennent.py(cela inclut donc aussiscript.py.bakou.python-version— pour un filtre strict en fin de nom, on utiliserait plutôtgrep "\.py$").wc -lcompte le nombre de lignes restantes.
Que fait ls | wc -l ?
Aide en ligne
Quand vous oubliez la syntaxe d'une commande, deux réflexes.
$ man ls # manuel complet (q pour quitter)
$ ls --help # aide rapide
Le manuel (man) est exhaustif mais touffu ; --help donne l'essentiel
en quelques lignes. Sur le web, le site manpages.org
expose ces mêmes manuels dans le navigateur.
Pour aller plus loin
Le shell ne se limite pas à enchaîner des commandes — c'est aussi un véritable
langage de programmation, avec des variables, des boucles, des
conditions. Les scripts shell (.sh) permettent d'automatiser des
tâches répétitives : sauvegardes, déploiements, traitements de fichiers.
Vous croiserez aussi grep (rechercher du texte), find (chercher des
fichiers), sed et awk (transformer du texte) — quatre outils
incontournables qui méritent leur propre apprentissage.