Visualisation et édition de fichiers
Table des matières
- Afficher le contenu : cat, less, more
- Début et fin de fichier : head, tail
- Rechercher dans les fichiers : grep
- Éditeur nano pour débutants
- Introduction à vim
- Exercices pratiques
1 - Afficher le contenu : cat, less, more
cat - Afficher tout le contenu
cat = concatenate (concaténer)
# Afficher un fichier
cat fichier.txt
# Afficher plusieurs fichiers
cat fichier1.txt fichier2.txt
# Afficher avec numéros de ligne
cat -n fichier.txt
# Afficher les caractères invisibles
cat -A fichier.txt
Options de cat
| Option | Effet |
|---|---|
-n | Numéroter toutes les lignes |
-b | Numéroter les lignes non-vides |
-A | Afficher les caractères invisibles |
-s | Compresser les lignes vides multiples |
cat affiche TOUT le fichier d'un coup. Pour les gros fichiers, utilisez less ou more.
less - Visualisation paginée
less affiche le fichier page par page, permettant de naviguer.
less fichier.txt
less /var/log/syslog
Navigation dans less :
| Touche | Action |
|---|---|
Espace ou f | Page suivante |
b | Page précédente |
↓ ou j | Ligne suivante |
↑ ou k | Ligne précédente |
g | Début du fichier |
G | Fin du fichier |
/texte | Rechercher "texte" |
n | Occurrence suivante |
N | Occurrence précédente |
q | Quitter |
less est préférable à more car il permet de naviguer dans les deux sens.
more - Visualisation basique
more fichier.txt
more est plus ancien et limité : on ne peut qu'avancer.
Comparaison
| Commande | Cas d'usage |
|---|---|
cat | Petits fichiers, concaténation |
less | Gros fichiers, navigation |
more | Alternative simple à less |
🔝 Retour à la table des matières
2 - Début et fin de fichier : head, tail
head - Afficher le début
# 10 premières lignes (par défaut)
head fichier.txt
# N premières lignes
head -n 20 fichier.txt
head -20 fichier.txt
# N premiers octets
head -c 100 fichier.txt
tail - Afficher la fin
# 10 dernières lignes (par défaut)
tail fichier.txt
# N dernières lignes
tail -n 20 fichier.txt
tail -20 fichier.txt
# Suivre les modifications en temps réel
tail -f /var/log/syslog
L'option -f (follow)
# Suivre un fichier de log en temps réel
tail -f /var/log/syslog
# Suivre plusieurs fichiers
tail -f /var/log/*.log
# Suivre avec nombre de lignes initial
tail -n 50 -f /var/log/syslog
tail -f est indispensable pour surveiller les logs en temps réel. Utilisez Ctrl + C pour arrêter.
Combinaisons utiles
# Lignes 10 à 20 d'un fichier
head -n 20 fichier.txt | tail -n 10
# Tout sauf les 5 premières lignes
tail -n +6 fichier.txt
# Tout sauf les 5 dernières lignes
head -n -5 fichier.txt
🔝 Retour à la table des matières
3 - Rechercher dans les fichiers : grep
grep = Global Regular Expression Print
Utilisation de base
# Rechercher "erreur" dans un fichier
grep "erreur" fichier.txt
# Rechercher dans plusieurs fichiers
grep "erreur" *.log
# Rechercher récursivement
grep -r "erreur" /var/log/
Options courantes
| Option | Effet |
|---|---|
-i | Ignorer la casse |
-n | Afficher les numéros de ligne |
-c | Compter les occurrences |
-v | Inverser (lignes NE contenant PAS) |
-r | Récursif (dans les sous-dossiers) |
-l | Afficher seulement les noms de fichiers |
-w | Mot entier uniquement |
-A n | Afficher n lignes après |
-B n | Afficher n lignes avant |
-C n | Afficher n lignes avant et après |
Exemples pratiques
# Ignorer la casse
grep -i "error" fichier.log
# Avec numéros de ligne
grep -n "warning" fichier.log
# Compter les occurrences
grep -c "error" *.log
# Lignes ne contenant PAS "debug"
grep -v "debug" application.log
# Mot entier "root" (pas "rooted")
grep -w "root" /etc/passwd
# Contexte autour de la correspondance
grep -C 3 "error" application.log
Grep avec pipe
# Filtrer la sortie d'une commande
ps aux | grep nginx
# Chercher dans l'historique
history | grep "apt"
# Filtrer les fichiers listés
ls -la | grep ".txt"
Expressions régulières basiques
# Commence par "Error"
grep "^Error" fichier.log
# Termine par "failed"
grep "failed$" fichier.log
# Contient un chiffre
grep "[0-9]" fichier.log
# Adresse IP (simplifié)
grep -E "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" fichier.log
🔝 Retour à la table des matières
4 - Éditeur nano pour débutants
nano est un éditeur de texte simple, idéal pour débuter.
Ouvrir nano
# Ouvrir un fichier (existant ou nouveau)
nano fichier.txt
# Ouvrir avec numéros de ligne
nano -l fichier.txt
Interface de nano
GNU nano 6.2 fichier.txt
Contenu du fichier ici...
│
│
│
│
│
^G Help ^O Write Out ^W Where Is ^K Cut ^U Paste
^X Exit ^R Read File ^\ Replace ^J Justify ^T Spell
Raccourcis essentiels
| Raccourci | Action |
|---|---|
Ctrl + O | Sauvegarder (Write Out) |
Ctrl + X | Quitter |
Ctrl + K | Couper la ligne |
Ctrl + U | Coller |
Ctrl + W | Rechercher |
Ctrl + \ | Rechercher et remplacer |
Ctrl + G | Aide |
Ctrl + C | Position du curseur |
Workflow typique
- Ouvrir :
nano fichier.txt - Éditer le contenu
- Sauvegarder :
Ctrl + OpuisEntrée - Quitter :
Ctrl + X
Le ^ dans les raccourcis signifie Ctrl. Donc ^X = Ctrl + X.
🔝 Retour à la table des matières
5 - Introduction à vim
vim (Vi IMproved) est un éditeur puissant, standard sur tous les systèmes Unix/Linux.
Pourquoi apprendre vim ?
- Présent sur tous les serveurs Linux
- Extrêmement rapide une fois maîtrisé
- Indispensable pour le DevOps
Les modes de vim
| Mode | Usage | Accès |
|---|---|---|
| Normal | Navigation, commandes | Echap |
| Insertion | Écrire du texte | i, a, o |
| Commande | Sauvegarder, quitter | : |
| Visuel | Sélectionner du texte | v |
Commandes de survie
# Ouvrir vim
vim fichier.txt
Dans vim :
| Commande | Action |
|---|---|
i | Mode insertion (avant curseur) |
a | Mode insertion (après curseur) |
Echap | Retour au mode normal |
:w | Sauvegarder |
:q | Quitter |
:wq | Sauvegarder et quitter |
:q! | Quitter sans sauvegarder |
dd | Supprimer une ligne |
yy | Copier une ligne |
p | Coller |
u | Annuler |
/texte | Rechercher |
Workflow minimal vim
- Ouvrir :
vim fichier.txt - Entrer en mode insertion : appuyer sur
i - Écrire votre texte
- Revenir en mode normal :
Echap - Sauvegarder et quitter : taper
:wqpuisEntrée
Si vous êtes "bloqué" dans vim :
- Appuyez sur
Echapplusieurs fois - Tapez
:q!etEntréepour quitter sans sauvegarder
Navigation en mode normal
| Touche | Mouvement |
|---|---|
h | Gauche |
j | Bas |
k | Haut |
l | Droite |
gg | Début du fichier |
G | Fin du fichier |
0 | Début de ligne |
$ | Fin de ligne |
w | Mot suivant |
b | Mot précédent |
🔝 Retour à la table des matières
6 - Exercices pratiques
Exercice 1 : Visualisation
# Créez un fichier de test
seq 1 100 > nombres.txt
# 1. Affichez tout le fichier
cat nombres.txt
# 2. Affichez les 5 premières lignes
head -n 5 nombres.txt
# 3. Affichez les 5 dernières lignes
tail -n 5 nombres.txt
# 4. Visualisez avec less
less nombres.txt
# (appuyez sur q pour quitter)
Exercice 2 : Recherche avec grep
# Créez un fichier de log fictif
cat > test.log << EOF
2024-01-15 10:00:00 INFO Application started
2024-01-15 10:01:00 DEBUG Processing request
2024-01-15 10:02:00 ERROR Connection failed
2024-01-15 10:03:00 WARNING Low memory
2024-01-15 10:04:00 INFO Request completed
2024-01-15 10:05:00 ERROR Timeout occurred
EOF
# 1. Trouvez toutes les erreurs
grep "ERROR" test.log
# 2. Comptez les erreurs
grep -c "ERROR" test.log
# 3. Trouvez tout sauf DEBUG
grep -v "DEBUG" test.log
# 4. Trouvez ERROR avec contexte
grep -C 1 "ERROR" test.log
Exercice 3 : Édition avec nano
# 1. Créez un nouveau fichier avec nano
nano mon_script.sh
# 2. Tapez ce contenu :
#!/bin/bash
echo "Bonjour, Linux !"
date
# 3. Sauvegardez (Ctrl+O, Entrée)
# 4. Quittez (Ctrl+X)
# 5. Vérifiez le contenu
cat mon_script.sh
Quiz
Q1. Comment afficher les 20 dernières lignes d'un fichier ?
Réponse
tail -n 20 fichier.txt ou tail -20 fichier.txt
Q2. Comment suivre un fichier log en temps réel ?
Réponse
tail -f fichier.log
Q3. Comment quitter vim sans sauvegarder ?
Réponse
Echap puis :q!
Q4. Comment chercher "error" sans tenir compte de la casse ?
Réponse
grep -i "error" fichier.txt
🔝 Retour à la table des matières
Points clés à retenir
cataffiche tout,lesspermet de naviguerhead -n N= N premières lignes,tail -n N= N dernièrestail -f= surveiller un fichier en temps réelgrep= rechercher du texte (-iignore la casse,-rrécursif)nano= éditeur simple (Ctrl+Osauve,Ctrl+Xquitte)vim= éditeur puissant (iinsertion,Echapnormal,:wqsauve et quitte)
🔝 Retour à la table des matières
← Chapitre précédent | Chapitre suivant : Aide et documentation →