Affichez le contenu d'un fichier avec cat, head et tail, puis capturez une sortie dans un fichier.
Ouvrir cette leçon dans KodokonVous n'avez pas toujours besoin d'ouvrir un éditeur pour jeter un œil à un fichier. La commande cat affiche son contenu directement dans le terminal. Son nom vient de concatenate, « mettre bout à bout », car elle sait aussi afficher plusieurs fichiers à la suite. C'est l'outil idéal pour les petits fichiers : quelques dizaines de lignes tout au plus.
yoann@portable:~/mon-projet$ cat courses.txt
Pain
Fromage
Tomates
yoann@portable:~/mon-projet$ cat courses.txt notes.txt
Pain
Fromage
Tomates
Ne pas oublier le marche du samediSur un fichier de dix mille lignes, cat fait défiler l'écran pendant dix secondes et vous ne voyez que la fin. Deux commandes plus fines existent : head affiche le début du fichier, tail en affiche la fin. Toutes deux montrent 10 lignes par défaut, et l'option -n permet de choisir combien. tail a un super-pouvoir avec l'option -f (*follow*) : elle reste ouverte et affiche les nouvelles lignes au fur et à mesure qu'elles arrivent. C'est ainsi qu'on surveille les journaux d'un serveur en direct.
head journal.log
head -n 5 journal.log
tail -n 20 journal.log
tail -f journal.logPar défaut, une commande écrit son résultat à l'écran. Mais on peut détourner ce résultat vers un fichier, comme on détournerait l'eau d'un tuyau vers un seau. C'est la redirection, et elle s'écrit avec un chevron. Le simple chevron > envoie la sortie dans un fichier en écrasant ce qu'il contenait. Le double chevron >> ajoute à la fin sans rien effacer. Cette petite différence d'un caractère change tout. Pour contrôler ce que vous venez de produire sans l'afficher en entier, la commande wc (word count) avec l'option -l (*lines*) compte le nombre de lignes d'un fichier.
yoann@portable:~/mon-projet$ echo "Ma première ligne" > notes.txt
yoann@portable:~/mon-projet$ echo "Ma deuxième ligne" >> notes.txt
yoann@portable:~/mon-projet$ cat notes.txt
Ma première ligne
Ma deuxième ligne
yoann@portable:~/mon-projet$ ls -l > inventaire.txt
yoann@portable:~/mon-projet$ wc -l inventaire.txt
7 inventaire.txtcat ?> et >> ?> ajoute à la fin, >> écrase le fichier> écrase le fichier, >> ajoute à la finjournal.log ?