Lire et explorer des fichiers
Afficher le contenu d’un fichier et consulter l’aide des commandes.
Objectifs
À la fin de cette leçon, vous saurez :
- afficher un fichier en entier ou par morceaux avec
cat,head,tail,less; - chercher du texte dans un fichier avec
grep; - consulter l'aide des commandes avec
man,whichet--help; - comprendre quand utiliser quoi.
🔗 Pour vous rafraîchir la mémoire : manipulation de fichiers (
cp,mv,rm)
Le contenu d'un fichier
Créez d'abord un fichier de test simple :
cd ~
nano demo.txt
Écrivez quelques lignes puis enregistrez : Ctrl+O, Entrée, puis Ctrl+X pour quitter. Vérifiez ensuite :
cat demo.txt
cat affiche tout le contenu, d'un bloc.
Lire par morceaux
Pour un petit fichier, cat suffit. Pour un fichier long (les journaux système en sont remplis), on lit par extraits :
head -n 5 demo.txt # les 5 premières lignes
tail -n 5 demo.txt # les 5 dernières lignes
tail -f demo.txt # suit les nouvelles lignes en continu
head: début du fichier ;tail: fin du fichier ;tail -f: c'est une commande qui ne se termine pas : elle attend de nouvelles lignes, utile pour surveiller un journal en direct. On quitte avec Ctrl+C (interrompre le programme en cours).
Un fichier page par page
less demo.txt
less affiche un fichier page par page, avec la molette et les flèches pour naviguer ; Q quitte, la barre d'espace fait avancer, / lance une recherche. On le réserve aux fichiers trop longs pour tenir à l'écran.
Chercher du texte
grep suivi demo.txt # toutes les lignes contenant « suivi »
grep -n suivi demo.txt # avec le numéro de ligne
grep -i Suivi demo.txt # sans distinction de casse
grep -v suivi demo.txt # toutes les lignes qui ne le contiennent pas
grep ne modifie rien : il lit des lignes et en renvoie une sélection. C'est une commande qui travaille avec son résultat.
Aide et documentation
La page de manuel
man grep
Ouvrez la page de manuel d'une commande et rappelez-vous : la flèche ou l'espace avance, Q quitte. Tout y est documenté, hors connexion. Le manuel n'est pas une abstraction : c'est la référence que chaque programme installe avec lui.
Rechercher un programme
which grep
which node
which répond par le chemin complet du programme exécutable trouvé. Si la réponse est vide, le programme n'est pas accessible depuis votre environnement.
Aide rapide
grep --help
ls --help
Beaucoup de commandes affichent un résumé des options avec --help, bien plus rapide que le manuel pour un usage quotidien.
Retrouver ses commandes passées
Le shell conserve l'historique de vos commandes : flèches haut/bas pour naviguer, ou commande dédiée :
history
Chaque ligne porte un numéro. Trois réflexes utiles :
- relancer la dernière commande :
!!; - relancer la commande numéro 42 :
!42; - chercher dans l'historique :
Ctrl+Rpuis tapez un début de commande (répétezCtrl+Rpour remonter aux occurrences précédentes).
L'historique explique aussi pourquoi on retrouve ses longues commandes du jour précédent sans les retaper — un gain quotidien dès maintenant, et la base des scripts automatisés au chapitre suivant.
Exercice
- Recherchez toutes les mentions de « erreur » dans
demo.txt. - Affichez les 3 premières lignes de
/etc/hosts. - Affichage : les 10 dernières lignes du journal système
/var/log/syslog(si la machine ne l'a pas, validez avec un autre journal de votre VM). Utilisezman tailpour vérifier l'option nécessaire. - Trouvez le chemin de
curlavecwhich, puis affichez la page d'aide decurlaveccurl --help. - Listez le contenu de
/usr/binet retrouvez trois commandes déjà vues dans ce chapitre.
Résumé
catmontre tout,head/tailmontrent des bouts,lesspermet de parcourir.grepsélectionne des lignes contenant un motif.mandocumente,--helprésume,whichlocalise.- Lire un résultat : c'est le geste fondamental du travail sur terminal.
Correction disponibleCherchez d’abord par vous-même.Voir la correction
Correction
Réponses détaillées
Exercice 1.
grep erreur demo.txt
Exercice 2.
head -n 3 /etc/hosts
Variante acceptée : head -3 /etc/hosts fonctionne aussi, le nombre pouvant suivre directement l'option.
Exercice 3. Certaines VM ne conservent pas ce journal. Visez un fichier plus fiable :
tail -n 10 /var/log/syslog
Si /var/log/syslog n'existe pas, /var/log/auth.log ou /var/log/messages conviennent. Et si aucun de ces fichiers n'existe (VM minimale), les options de tail restent identiques. On peut aussi créer un fichier long localement pour s'entraîner, par exemple :
seq 1 200 > numeros.txt # 1 à 200, une ligne chacune
tail -n 10 numeros.txt
Exercice 4.
which curl
curl --help
Exercice 5. Exemple :
ls /usr/bin | grep -E "pwd|ls|cat"
Ici | a envoyé la sortie de ls dans grep : le pipe. Vous venez de rencontrer le sujet de la leçon suivante.