Vous devez vérifier le début d’un fichier de log ou d’un export volumineux, mais vous ne voulez pas l’ouvrir dans un éditeur graphique ? La commande head affiche uniquement les premières lignes ou les premiers octets. Elle est rapide, adaptée aux fichiers très lourds et pratique pendant un diagnostic serveur.
Afficher les premières lignes
Par défaut, head affiche les dix premières lignes du fichier indiqué :
head /var/log/syslog
Pour choisir le nombre de lignes, utilisez l’option -n. Cette forme est la plus lisible dans un script ou une procédure :
head -n 30 /var/log/syslog
head -n 5 /var/log/auth.log
Sur les distributions qui utilisent systemd, vos droits peuvent être insuffisants pour certains journaux. Dans ce cas, ajoutez sudo uniquement si le fichier appartient à root ou si ses permissions l’exigent.
Lire les premiers octets
head ne se limite pas aux lignes. Avec -c, vous pouvez extraire un nombre précis d’octets, ce qui est utile pour vérifier l’en-tête d’un fichier ou examiner rapidement un format inconnu :
head -c 64 sauvegarde.bin
head -c 256 image.iso | od -An -tx1
Cette méthode ne cherche pas une fin de ligne. Sur un fichier binaire, la sortie peut donc contenir des caractères illisibles. Ce n’est pas une corruption du fichier, seulement une lecture brute du début de son contenu.
Traiter plusieurs fichiers
Vous pouvez fournir plusieurs chemins à la même commande :
head -n 15 /var/log/syslog /var/log/auth.log
La commande ajoute alors un en-tête avant chaque fichier pour éviter de mélanger les résultats. Pour lire tous les fichiers texte d’un dossier, utilisez un motif avec prudence :
head -n 5 logs/*.log
Si aucun fichier ne correspond au motif, le shell peut transmettre le motif tel quel à head et afficher une erreur. Vérifiez donc le chemin et le contenu du dossier avant de l’intégrer à un script automatisé.
Éviter les mauvaises surprises
head lit le fichier au moment de l’appel. Il ne suit pas les nouvelles lignes ajoutées ensuite. Pour surveiller un journal en direct, utilisez plutôt tail avec son mode -f.
Pour limiter la sortie dans un pipeline, combinez head avec les outils adaptés :
journalctl -b --no-pager | head -n 40
ls -lah /var/log | head -n 20
Le premier exemple récupère les premières lignes du journal du démarrage actuel. Le second permet de ne pas faire défiler toute la liste d’un répertoire. Dans un script, contrôlez aussi le code de sortie et évitez de masquer une erreur de lecture derrière un pipeline trop long.
Vérifier ce que vous lisez
Avant d’interpréter le résultat, identifiez le fichier et son type :
ls -lh /chemin/vers/fichier
file /chemin/vers/fichier
head -n 20 /chemin/vers/fichier
ls confirme notamment la taille et les permissions, tandis que file indique si le contenu ressemble à du texte, une archive ou un format binaire. Cette vérification évite de traiter un fichier compressé comme un journal lisible. Pour un fichier qui évolue pendant votre diagnostic, relancez head si vous voulez comparer le début après une rotation ou une modification.
La page de manuel de head détaille les variantes de syntaxe. Vous pouvez aussi consulter les guides LinuxEnCaja sur wc et file pour compléter l’inspection d’un fichier.
