Qu’est-ce que la commande tail Linux et comment l’utiliser avec la commande head ?

La commande Linux tail affiche les dernières lignes d’un ou de plusieurs fichiers en tant que sortie standard. Elle permet aux utilisateurs de récupérer efficacement de nouvelles données pour la surveillance des journaux, sans qu’il soit nécessaire d’ouvrir fréquemment les fichiers.

Les administrateurs système le combinent généralement avec d’autres commandes Linux telles que sort ou rm pour manipuler la sortie. En outre, ils peuvent ajouter diverses options pour modifier le comportement de l’utilitaire en fonction des tâches.

Afin d’améliorer l’efficacité de la gestion de votre serveur privé virtuel (VPS), cet article explique les bases de la commande Linux tail. Nous fournirons sa syntaxe, partagerons des exemples pratiques et montrerons comment la combiner avec l’utilitaire head.

La commande tail affiche les dernières lignes des fichiers spécifiés, dix par défaut sauf modification par l’utilisateur. Elle est souvent utilisée pour suivre les fichiers journaux et surveiller les mises à jour en temps réel. Les administrateurs système l’associent fréquemment à d’autres commandes via des pipes pour personnaliser l’affichage. Si aucun fichier n’est indiqué, elle lit depuis l’entrée standard. Il est possible de définir le nombre de lignes ou d’octets à afficher.

Syntaxe de la commande tail

Par défaut, tail affiche les 10 dernières lignes d’un fichier. Voici la syntaxe de base :

tail [nom_du_fichier]

Vous pouvez utiliser plusieurs options pour personnaliser la sortie de tail. Voici quelques-unes des plus populaires, avec leur forme longue et leurs fonctions :

  • -c num ou –bytes – affiche les derniers num octets de données.
  • -n num ou –lines – spécifie les dernières num lignes à afficher.
  • -f ou –follow=name – surveille les nouvelles entrées à mesure que le fichier s’agrandit.
  • -v ou –verbose – affiche le nom du fichier avant les données.
  • -q ou –quiet, –silent – omet le nom du fichier avant d’afficher les données.
  • -version – affiche les informations de version de tail.

Important ! Notez que la syntaxe de cette commande Linux est sensible à la casse.

Exemples de commandes tail

Dans cette section, nous allons explorer les utilisations courantes et les exemples pratiques de la commande Linux tail. Pour exécuter cette commande sur un VPS, connectez-vous à l’aide d’un client SSH tel que PuTTY ou Terminal. Les utilisateurs de Hostinger peuvent également utiliser notre fonctionnalité de terminal de navigateur

Utilisation de tail pour imprimer les 10 dernières lignes

La fonctionnalité de base de la commande tail consiste à afficher les 10 dernières entrées d’un fichier unique. Pour ce faire, exécutez-la sans option ni indicateur, comme dans l’exemple suivant :

tail error.log

Si le fichier journal ajoute une nouvelle entrée en bas de page, la commande tail l’affichera à la dernière ligne. Par défaut, elle présente les données dans l’ordre décroissant, en commençant par l’entrée la plus récente. 

Vous pouvez également spécifier le chemin d’accès au répertoire. Voici des exemples de commandes permettant de suivre les 10 dernières entrées des fichiers journaux de différents serveurs web :

sudo tail -f /var/log/apache2/access.log
sudo tail -f /var/log/nginx/access.log

Utilisation de tail pour imprimer un nombre spécifique de lignes 

Pour afficher des lignes spécifiques avec tail, ajoutez l’option -n à votre commande. Voici la syntaxe :

tail -n [num] [nom_du_fichier]

Voir l’exemple de commande suivant pour imprimer les deux dernières lignes du fichier mynote.txt :

tail -n 2 mynote.txt

Vous pouvez également omettre l’option -n et spécifier directement le nombre de lignes à imprimer en tant qu’indicateur, comme dans cet exemple :

tail -2 mynote.txt

Utilisation de tail pour spécifier le nombre d’octets

L’option -c affiche le dernier nombre d’octets du fichier spécifié. Les administrateurs l’utilisent généralement pour les fichiers de taille normale contenant le jeu de caractères ASCII, où un caractère correspond à un octet.

Voici la syntaxe :

tail -c [num] [nom_de_fichier]

L’exemple suivant affiche les 50 derniers octets ou caractères du fichier mynote.txt :

tail -c 50 mynote.txt

Important ! L’option -c de la commande tail compte les octets plutôt que les caractères. Par conséquent, lorsque vous travaillez avec des fichiers utilisant le jeu de caractères Unicode, en particulier ceux contenant des caractères sur plusieurs octets, le fait de spécifier le dernier num octets peut ne pas correspondre aux limites des caractères, ce qui peut entraîner des confusions dans le résultat.

Utilisation de tail pour trier les données

Combinez d’autres utilitaires et options avec tail pour interroger les données dans un ordre spécifique. La commande diffère selon la manière dont vous souhaitez afficher les informations.

Par exemple, vous pouvez utiliser la commande ls avec les options -t et -l pour obtenir la liste des 10 éléments du répertoire actuel dont les modifications sont les plus anciennes. Voici la syntaxe :

ls -tl | tail -n [nombre_de_lignes]

Vous pouvez également ajouter la commande sort avec l’option -M pour réorganiser les résultats par ordre croissant en fonction du mois de création.

ls -tl | sort -M | tail -n [nombre_de_lignes]

Pour inverser l’ordre de sortie, ajoutez  l’option -r à la commande tail :

tail -n [nombre_de_lignes] [nom_du_fichier] | sort -r

Utilisation de tail pour surveiller les modifications d’un fichier

L’option –follow ou -f vous permet d’exécuter la commande tail en continu, en mettant à jour la sortie en temps réel chaque fois que le fichier spécifié reçoit de nouvelles données. Voici la syntaxe :

tail -f [nom_du_fichier]

La ligne d’en-tête met en évidence les modifications apportées au fichier original. Vous pouvez également spécifier le nom comme valeur de l’option, comme suit :

tail --follow=nom [nom_du_fichier]

Si vous ne spécifiez pas le nom, l’option utilisera la valeur par défaut “descriptor“. Cela signifie que la commande continuera à imprimer de nouvelles lignes du même fichier pendant la rotation du journal.

Même si vous le renommez ou créez un nouveau fichier portant le même nom, la commande continuera à surveiller le même fichier. L’utilisation de l’option -F majuscule produit le même comportement.

En option, ajoutez l’option –max-unchanged-stats pour masquer les lignes identiques après un certain nombre d’occurrences, ce qui simplifie la surveillance des journaux Linux. Voici la commande :

tail -f --max-unchanged-stats=5 error.log

Pour arrêter l’impression des nouvelles données, quittez le mode de mise à jour en appuyant sur le raccourci Ctrl+C. Une utilisation courante de tail -f consiste à afficher les journaux en temps réel, car les nouvelles informations d’état s’affichent généralement au bas d’un fichier.

Conseil de pro

Pour une analyse continue des fichiers journaux, exécutez la commande tail -f dans une autre instance de terminal en utilisant un multiplexeur comme Linux Screen pour maintenir le processus en cours d’exécution en arrière-plan.

Utilisation de la commande tail pour plusieurs fichiers

Le traitement simultané de plusieurs fichiers à l’aide de la commande tail nécessite l’établissement d’une liste de noms comme suit :

tail [option] [nom_de_fichier_1] [nom_de_fichier_2] [nom_de_fichier_3]

Par exemple, nous allons imprimer cinq lignes à partir de plusieurs fichiers texte :

tail -n 5 file1.txt file2.txt file3.txt

Si vous exécutez la commande tail avec plusieurs noms de fichiers, Terminal affichera des en-têtes les spécifiant.

Masquez l’en-tête du fichier en ajoutant l’option -q pour activer le mode silencieux, en omettant les informations :

tail -q [nom_du_fichier]

Utilisation de tail pour suivre l’utilisation des ressources du système

Combinez la commande tail avec des utilitaires de suivi des ressources pour surveiller l’utilisation du matériel de votre système. Voici un exemple de syntaxe :

commande [intervalle] | tail -n [nombre_de_lignes]

L’utilitaire de suivi des ressources enregistre l’utilisation du matériel à des intervalles spécifiés. La commande tail récupère les données et affiche les dernières lignes.

Par exemple, entrez la commande suivante pour suivre les cinq derniers journaux d’utilisation de la mémoire virtuelle, avec une actualisation toutes les secondes :

vmstat 1 | tail -n 5

Pour suivre les statistiques d’E/S de votre VPS, utilisez la commande iostat comme suit :

iostat 1 | tail -n 5

Par ailleurs, combinez tail avec la commande netstat pour surveiller l’utilisation des ressources liées au réseau :

netstat 1 | tail -n 5

Si Terminal affiche l’erreur “Command not found“, installez les utilitaires de suivi des ressources en procédant comme suit :

sudo apt install net-tools procps sysstat

Au lieu de commandes, les utilisateurs de l’hébergement VPS de Hostinger peuvent vérifier l’utilisation des ressources de leur serveur grâce à notre fonction de surveillance qui offre une interface utilisateur graphique. Pour y accéder, rendez-vous sur hPanel Sauvegardes et surveillance Utilisation du serveur.

Utilisation de la commande tail avec des pipes

Dans les systèmes d’exploitation Linux, un pipe (|) est une redirection de sortie standard. Il permet à une commande de transmettre les informations récupérées à un autre utilitaire en tant qu’entrée. 

Outre le contenu des fichiers, vous pouvez utiliser un pipe pour transmettre la sortie d’un autre utilitaire à la commande tail. Voici la syntaxe :

commande | tail -n [nombre de lignes]

Par exemple, la commande netstat imprime de nombreuses lignes par défaut. Cependant, le transfert de sa sortie vers l’utilitaire tail vous permet de ne récupérer que les données les plus récentes pour une analyse plus simple.

Utilisation de la commande head avec tail

La commande head de Linux imprime les premières lignes d’un ou de plusieurs fichiers sur une sortie standard. Comme l’utilitaire tail, elle fait partie des Coreutils GNU. Voici sa syntaxe de base :

head -[option] [nom_du_fichier]

Vous pouvez utiliser certaines des options de la commande tail avec head. Par exemple, ajoutez -n pour imprimer les premières lignes d’un fichier.

La combinaison des commandes head et tail permet d’extraire une section spécifique d’un fichier. 

Par exemple, utilisez la commande head pour extraire les premières lignes d’un fichier. Les données sont envoyées en entrée standard à tail pour afficher les dernières entrées de cette section particulière. Considérez les commandes suivantes :

head -n 20 access.log | tail -10
head -n 20 error.log | tail -10

Dans les exemples ci-dessus, la commande head récupère les 20 premières lignes des deux fichiers journaux et les fait passer par le pipe en tant qu’entrée. Ensuite, la commande tail imprime les 10 dernières lignes.

Pour extraire le premier num de lignes à partir d’une entrée particulière, spécifiez ce nombre à la valeur -n de la commande tail. Par exemple, voici comment afficher les entrées à partir de la ligne numéro cinq :

head -n 10 mynote.txt | tail -5

Conclusion

La commande Linux tail imprime les dernières lignes d’un fichier sur une sortie standard. Elle permet de simplifier des tâches telles que la surveillance des fichiers journaux, puisque les administrateurs système n’ont pas besoin de les rouvrir manuellement pour vérifier s’il y a de nouvelles données.

Cet utilitaire de ligne de commande récupère les 10 dernières lignes par défaut, mais vous pouvez afficher un nombre spécifié d’entrées à l’aide de l’option -n. Vous pouvez également spécifier plusieurs noms de fichiers et imprimer les données en fonction de leur valeur en octets.

En outre, les utilisateurs peuvent combiner tail avec d’autres outils de ligne de commande Linux à l’aide d’un pipe (|) afin de modifier la sortie pour des tâches spécifiques. Par exemple, ajoutez netstat, iostat et vmstat pour vérifier le dernier journal d’utilisation des ressources du système.

Il est également possible de le combiner avec l’utilitaire head pour récupérer une section particulière d’un fichier. En outre, la commande sort permet de réorganiser la sortie de tail en fonction de vos besoins, pour une analyse plus simple.

Commande tail – FAQ

Comment utiliser la commande Grep Tail ?

L’utilisation de la combinaison tail et grep nécessite l’activation du mode de mise en mémoire tampon des lignes. Il permet au processus de reprendre la recherche tout en réduisant les délais.
 
Pour ce faire, écrivez tail avec l’option -f et le nom du fichier. Ensuite, envoyez la commande grep avec l’option –line-buffered et le motif à rechercher.

Comment sortir de la commande Tail sous Linux ?

Pour arrêter le processus de la commande tail et restaurer la fenêtre du terminal, appuyez sur Ctrl+C. Ce raccourci envoie le signal SIGINT, indiquant à l’interface de ligne de commande de terminer le processus correctement.

Nous ne recommandons pas l’utilisation du signal SIGKILL, car il met fin au processus de manière forcée, ce qui peut entraîner des problèmes.

Comment rediriger la sortie de tail vers un fichier ?

Pour rediriger la sortie de la commande tail vers un fichier, utilisez le symbole plus grand que (>) et indiquez l’endroit où vous souhaitez stocker les données. Par exemple, l’exécution de la commande tail data.txt > log_file.txt enregistrera les 10 dernières entrées de data.txt dans le fichier log_file.txt.

Lorsque vous redirigez la sortie, assurez-vous que l’utilisateur actuel dispose des droits d’écriture sur le fichier cible.

Author
L'auteur

Ismail

Ismail est un spécialiste du référencement et de la localisation chez Hostinger. Il est passionné par la technologie et le développement web et possède des années d'expérience dans le domaine informatique. Ses passe-temps incluent les jeux vidéo et le football.