🎯 Ce que tu sauras à la fin
Lire
Choisir le bon outil : cat, less, head, tail.
Surveiller
Suivre un journal en direct avec tail -f.
Éditer
Modifier un fichier avec nano en toute sérénité.
Vim
Comprendre ses modes, et ne plus jamais y rester coincé.
Lire un fichier : un outil par situation
| Besoin | Commande | Exemple |
|---|---|---|
| Afficher un petit fichier en entier | cat | cat /etc/hostname |
| Lire un long fichier page par page | less | less /etc/services |
| Voir le début | head | head -n 5 /etc/passwd |
| Voir la fin | tail | tail -n 20 /var/log/syslog |
| Suivre les ajouts en direct | tail -f | tail -f /var/log/syslog |
| Compter lignes, mots, octets | wc | wc -l /etc/passwd |
cat : tout, tout de suite
user@ubuntu:~$ cat /etc/os-release PRETTY_NAME="Ubuntu 24.04.4 LTS" NAME="Ubuntu" VERSION_ID="24.04" VERSION_CODENAME=noble ... user@ubuntu:~$ cat -n /etc/hostname # -n numérote les lignes 1 ubuntu
Son nom vient de concatenate : cat a.txt b.txt affiche les deux fichiers à la suite. Sa cousine tac affiche un fichier… à l'envers, de la dernière ligne à la première.
cat sur un fichier binaire
Un cat sur un programme ou une image affiche des caractères incompréhensibles et peut dérégler le terminal.
Vérifie d'abord avec file nom. Si le terminal est déjà déréglé, tape reset (même à l'aveugle) et Entrée.
less : le lecteur page par page
C'est le même lecteur que man : tu connais déjà ses touches. Il ne charge pas tout le fichier en mémoire, donc il ouvre instantanément
des fichiers de plusieurs gigaoctets.
| Touche | Action |
|---|---|
| Espace / B | Page suivante / précédente |
| G / Maj + G | Début / fin du fichier |
| /mot puis N / Maj + N | Rechercher, occurrence suivante / précédente |
| Maj + F | Mode « suivi » comme tail -f (Ctrl + C pour en sortir) |
| Q | Quitter |
Option pratique : less -N fichier affiche les numéros de ligne.
head et tail : le début et la fin
user@ubuntu:~$ head -n 3 /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin user@ubuntu:~$ tail -n 2 /etc/passwd user:x:1000:1000:user,,,:/home/user:/bin/bash vboxadd:x:999:1::/var/run/vboxadd:/bin/false
tail -f : le direct
Avec -f (follow), tail ne s'arrête pas : chaque ligne ajoutée au fichier s'affiche immédiatement.
C'est l'outil de base pour surveiller un serveur ou comprendre ce qui se passe pendant une manipulation. Essaie avec deux terminaux côte à côte :
user@ubuntu:~$ tail -f /var/log/syslog 2026-10-22T11:20:41 ubuntu systemd[1]: Started ... 2026-10-22T11:20:58 ubuntu user: Bonjour depuis le terminal 2 ! # apparaît en direct
user@ubuntu:~$ logger "Bonjour depuis le terminal 2 !" # écrit un message dans le journal
Ctrl + C arrête le suivi. Variante robuste : tail -F continue même si le fichier est remplacé (rotation des journaux).
wc : compter
user@ubuntu:~$ wc /etc/passwd 37 64 2072 /etc/passwd # lignes, mots, octets user@ubuntu:~$ wc -l /etc/passwd # seulement les lignes 37 /etc/passwd
Éditer avec nano
nano est l'éditeur le plus simple du terminal, installé par défaut sur Ubuntu. Ses raccourcis sont affichés en bas de l'écran,
avec deux notations à connaître : ^ = Ctrl et M- = Alt.
GNU nano 7.2 notes.txt Ma première note sous Linux. Elle est écrite avec nano. ^G Aide ^O Écrire ^W Chercher ^K Couper ^T Exécuter ^C Position ^X Quitter ^R Lire fich.^\ Remplacer ^U Coller ^J Justifier ^/ Aller ligne
| Raccourci | Action |
|---|---|
| Ctrl + O puis Entrée | Enregistrer (write Out) |
| Ctrl + X | Quitter (propose d'enregistrer si besoin) |
| Ctrl + K / Ctrl + U | Couper la ligne / coller |
| Ctrl + W | Rechercher |
| Ctrl + \ | Rechercher et remplacer |
| Alt + U / Alt + E | Annuler / rétablir |
| Ctrl + / | Aller à une ligne donnée |
user@ubuntu:~$ nano notes.txt # crée le fichier s'il n'existe pas user@ubuntu:~$ nano -l notes.txt # avec les numéros de ligne user@ubuntu:~$ sudo nano /etc/hosts # un fichier système : il faut sudo
Avant de modifier un fichier de /etc, fais-en une copie : sudo cp /etc/hosts /etc/hosts.bak. Une faute dans certains
fichiers (/etc/fstab, /etc/sudoers…) peut empêcher le système de démarrer ou te priver de sudo.
Dans la VM, un instantané avant ne coûte rien.
Vim : survivre, puis briller
Vim (Vi IMproved, 1991) descend de vi, écrit en 1976. Il est présent sur pratiquement tous les serveurs Unix et Linux du monde,
ce qui en fait l'éditeur à connaître quand rien d'autre n'est disponible. Sur Ubuntu, une version minimale est installée ; la version complète s'obtient avec
sudo apt install vim.
« Comment quitter Vim ? » est l'une des questions les plus consultées de l'histoire de Stack Overflow, vue des millions de fois. La blague dit qu'on ne quitte pas Vim : on redémarre l'ordinateur. Après cette section, tu n'en auras plus besoin.
Les modes : la clé de tout
Dans la plupart des éditeurs, taper une lettre écrit cette lettre. Dans Vim, cela dépend du mode :
:w, :q…Le kit de survie
| Je veux… | Je tape |
|---|---|
| Écrire du texte | i, puis je tape normalement |
| Arrêter d'écrire | Échap (en cas de doute : Échap, toujours) |
| Enregistrer | :w Entrée |
| Enregistrer et quitter | :wq Entrée (ou ZZ) |
| Quitter sans enregistrer | :q! Entrée : la formule magique |
Pour aller plus vite (mode normal)
| Catégorie | Touches |
|---|---|
| Se déplacer | h j k l (gauche, bas, haut, droite) · w / b mot suivant / précédent · 0 / $ début / fin de ligne · gg / G début / fin du fichier |
| Insérer | i avant le curseur · a après · o nouvelle ligne en dessous · A en fin de ligne |
| Modifier | x supprime un caractère · dd supprime (coupe) la ligne · yy copie la ligne · p colle · u annule · Ctrl + R rétablit · . répète |
| Chercher | /mot puis n / N · :%s/ancien/nouveau/g remplace partout |
| Combiner | Un nombre devant répète : 3dd supprime 3 lignes, 5j descend de 5 lignes |
vimtutor : le meilleur cours de Vim
Tape vimtutor dans un terminal : un tutoriel interactif de 30 minutes s'ouvre, dans Vim lui-même. Il existe en français
(vimtutor fr, avec le paquet vim complet). C'est la façon la plus efficace d'apprendre.
Choisir son éditeur par défaut
Certaines commandes (crontab -e, git commit, sudoedit…) ouvrent un éditeur automatiquement. Pour choisir lequel :
user@ubuntu:~$ sudo update-alternatives --config editor Sélection Chemin Priorité État * 0 /bin/nano 40 mode automatique 1 /usr/bin/vim.basic 30 mode manuel ...
Encodages et fins de ligne
Un fichier texte n'est qu'une suite d'octets. Deux conventions décident de la façon de les interpréter, et sont source de bugs mystérieux :
L'encodage
Comment les caractères (é, ç, €, emoji) sont codés en octets. Linux utilise UTF-8 partout. Un vieux fichier en Latin-1 affichera des accents cassés (é au lieu de é).
La fin de ligne
Linux termine les lignes par LF (\n), Windows par CRLF (\r\n). Un script écrit sous Windows peut refuser de fonctionner sous Linux.
user@ubuntu:~$ file script.sh script.sh: Bourne-Again shell script, ASCII text executable, with CRLF line terminators user@ubuntu:~$ ./script.sh bash: ./script.sh: /bin/bash^M: bad interpreter: No such file or directory user@ubuntu:~$ cat -A script.sh | head -2 # -A montre les caractères invisibles #!/bin/bash^M$ echo "Bonjour"^M$ # ^M = le \r de Windows, $ = fin de ligne user@ubuntu:~$ sudo apt install dos2unix && dos2unix script.sh # conversion
Pour l'encodage, file -i fichier indique le jeu de caractères, et iconv -f latin1 -t utf-8 ancien.txt > nouveau.txt convertit.
Glossaire du module
- cat
- Affiche (et concatène) des fichiers.
- less
- Lecteur page par page, aussi utilisé par
man. - head / tail
- Début / fin d'un fichier ;
tail -fsuit les ajouts en direct. - wc
- Compte lignes, mots et octets.
- Éditeur de texte
- Programme pour modifier un fichier texte : nano, Vim, Emacs…
- nano
- Éditeur simple, raccourcis affichés à l'écran.
- Vim
- Éditeur modal, puissant, présent sur presque tous les serveurs.
- Mode normal / insertion / commande
- Les trois états de Vim : commandes, saisie de texte, commandes en
:. - UTF-8
- L'encodage de caractères standard sous Linux.
- LF / CRLF
- Fin de ligne Linux / Windows.
🧠 Quiz : as-tu tout retenu ?
less affiche page par page et permet de chercher. cat ferait tout défiler.tail montre la fin, head le début.tail -f ?-f = follow. On l'arrête avec Ctrl + C.^O signifie…^ représente Ctrl, M- représente Alt.:q! force la sortie en abandonnant les modifications. :wq enregistre puis quitte.^M est le \r des fins de ligne Windows. Solution : dos2unix.🚀 Mission pratique
À faire dans la machine virtuelle
Coche chaque étape une fois faite : sa correction s'affiche juste en dessous.
- ✅ Correction
$ cat /etc/os-release $ cat -n /etc/os-release 1 PRETTY_NAME="Ubuntu 24.04.x LTS" 2 NAME="Ubuntu" ...
- ✅ Correction
$ less /etc/services # /ssh puis Entrée : la ligne « ssh 22/tcp » est surlignée # n : occurrence suivante · Maj+G : fin du fichier · q : quitter
- ✅ Correction
$ head -n 3 /etc/passwd $ tail -n 3 /etc/passwd $ wc -l /etc/passwd 37 /etc/passwd
Le nombre de lignes dépend des paquets installés.
- ✅ Correction
# Terminal 1 $ tail -f /var/log/syslog # Terminal 2 $ logger "Bonjour depuis le terminal 2" # Terminal 1 affiche aussitôt : ... ubuntu user: Bonjour depuis le terminal 2
« Permission non accordée » ? Utilise
sudo tail -f /var/log/syslog. Ctrl + C pour arrêter. - ✅ Correction
$ mkdir -p ~/labo $ nano ~/labo/notes.txt
Écris 5 lignes. Sur une ligne : Ctrl + K (couper), déplace le curseur, Ctrl + U (coller). Enregistre avec Ctrl + O puis Entrée, quitte avec Ctrl + X. Vérifie avec
cat ~/labo/notes.txt. - ✅ Correction
$ vim ~/labo/notes.txtG (aller à la fin), o (nouvelle ligne en dessous, mode insertion), tape ta ligne, Échap, puis
:wqet Entrée. - ✅ Correction
Dans Vim : dd plusieurs fois, puis Échap et
:q!Entrée. Vérifie aveccat ~/labo/notes.txt: le fichier est intact. (Si tu tapes seulement:q, Vim refuse avec l'erreur E37.) - ✅ Correction
Dans Vim, en mode normal :
:%s/note/mémo/gpuis Entrée.%= tout le fichier,g= toutes les occurrences de chaque ligne. Ajoutecà la fin (/gc) pour confirmer chaque remplacement. Enregistre avec:wq. - ✅ Correction
$ vimtutor # version française complète : $ sudo apt install vim $ vimtutor fr
Le tutoriel travaille sur une copie : aucun risque de casser quoi que ce soit.
- ✅ Correction
$ sudo cp /etc/hosts /etc/hosts.bak $ sudo nano /etc/hosts # ajouter la ligne : 127.0.0.1 monsite.local $ ping -c 1 monsite.local 64 octets de localhost (127.0.0.1) : icmp_seq=1 ... $ sudo cp /etc/hosts.bak /etc/hosts
💬 Questions fréquentes
Les questions qui reviennent le plus souvent sur ce module, avec leurs réponses.
Vim affiche « E37: No write since last change »
Tu as tapé :q alors que le fichier a été modifié : Vim refuse de perdre ton travail. Choisis : :wq pour enregistrer
et quitter, ou :q! pour abandonner les modifications.
« [ Fichier « … » non accessible en écriture ] » dans nano
Le fichier appartient à root (typiquement dans /etc). Quitte sans enregistrer, puis rouvre-le avec sudo nano fichier.
Dans Vim, l'astuce :w !sudo tee % permet d'enregistrer quand même, mais mieux vaut prendre l'habitude d'ouvrir le fichier avec les bons droits.
Je n'ai pas le droit de lire /var/log/syslog
Les journaux sont réservés aux administrateurs. Sur Ubuntu, le premier compte créé appartient au groupe adm, qui peut les lire ;
sinon, utilise sudo tail -f /var/log/syslog. La commande journalctl (module 10) offre une autre façon de lire les journaux.