Linux Leçon 3
Lire et chercher
Afficher un fichier, suivre un journal en direct, chercher un mot et enchaîner les commandes.
À la fin de cette leçon, tu sauras
- Afficher un fichier avec cat, less, head et tail
- Chercher un texte avec grep
- Enchaîner des commandes avec le tube |
Afficher un fichier
cat notes.txt # affiche tout le fichier
less /var/log/syslog # affiche page par page (q pour quitter, / pour chercher)
head -n 20 fichier.log # les 20 premières lignes
tail -n 50 fichier.log # les 50 dernières lignes
tail -f fichier.log # suit le fichier en direct (Ctrl+C pour arrêter)tail -f est très utile sur un serveur : tu vois les nouvelles lignes du journal arriver pendant que tu testes ton site.
Chercher avec grep
grep "erreur" app.log # les lignes qui contiennent « erreur »
grep -i "erreur" app.log # sans tenir compte des majuscules
grep -r "mot_de_passe" projet/ # dans tous les fichiers d'un dossier
grep -n "TODO" index.php # avec le numéro de ligneLe tube | et les redirections
Le tube | envoie le résultat d'une commande à la suivante. On construit ainsi des commandes puissantes avec de petites briques.
cat app.log | grep "404" | wc -l # compte les lignes qui contiennent 404
ls -la | grep ".html" # les fichiers HTML du dossier
echo "Bonjour" > message.txt # écrit dans le fichier (l'écrase)
echo "Encore" >> message.txt # ajoute à la fin du fichierwc -l compte les lignes. > redirige vers un fichier en le remplaçant, >> ajoute à la fin.
Attention : > écrase le fichier sans prévenir. Pour ajouter, c'est >>.
À toi de jouer
Ton site plante. Le journal est dans /var/log/site.log. Tape dans le terminal les commandes pour :
- afficher les 30 dernières lignes du journal ;
- afficher seulement les lignes qui contiennent « error », sans tenir compte des majuscules ;
- compter ces lignes en enchaînant
grepetwc -lavec un tube.
- tail affiche les 30 dernières lignes
- grep -i cherche « error »
- Un tube envoie le résultat à wc -l
Bravo, toutes les consignes sont réussies !
Bloqué ? Voir une solution
tail -n 30 /var/log/site.log
grep -i "error" /var/log/site.log
grep -i "error" /var/log/site.log | wc -l