GNU/Linux >> Tutoriels Linux >  >> Linux

Commandes tête et queue sous Linux expliquées avec des exemples

Récupérer une portion de texte à partir de fichiers d'entrée sous Linux est une opération courante. Cependant, parfois, nous sommes intéressés à afficher seulement quelques lignes d'un fichier. Linux nous fournit les commandes tête et queue pour imprimer uniquement les lignes qui nous intéressent.

Table des matières

  • Commande principale sous Linux
    • Sortir un nombre spécifique de lignes à l'aide de la commande head
    • Sortir un nombre spécifique d'octets à l'aide de la commande head
    • Sortir plusieurs fichiers à l'aide de la commande head
    • Comment utiliser la commande head avec les canaux
  • Commande Tail sous Linux
    • Sortir un nombre spécifique de lignes à l'aide de la commande tail
    • Comment utiliser la commande tail avec les tuyaux
    • Surveiller un fichier pour les modifications à l'aide de la commande tail
  • Comment utiliser les commandes head et tail ensemble sous Linux
  • Conclusion

Linux head et tail les commandes sont très similaires. Ils sont installés par défaut dans toutes les distributions Linux. Commençons par comprendre ce qu'ils sont et à quoi ils servent.

En bref, comme leur nom l'indique, le head La commande imprime les lignes depuis le début d'un fichier, et la tail La commande imprime les lignes à partir de la fin des fichiers. Les deux commandes écrivent le résultat sur la sortie standard.

Maintenant, apprenons à les utiliser à travers des exemples.

Commande principale sous Linux

La syntaxe du head la commande est assez simple :

head [OPTIONS] FILES

Par défaut, sans aucune option , le head La commande affichera les 10 premières lignes du fichier. Juste comme ça.

head /etc/passwd
root:x:0:0::/root:/bin/bash
bin:x:1:1::/:/usr/bin/nologin
daemon:x:2:2::/:/usr/bin/nologin
mail:x:8:12::/var/spool/mail:/usr/bin/nologin
ftp:x:14:11::/srv/ftp:/usr/bin/nologin
http:x:33:33::/srv/http:/usr/bin/nologin
nobody:x:65534:65534:Nobody:/:/usr/bin/nologin
dbus:x:81:81:System Message Bus:/:/usr/bin/nologin
systemd-journal-remote:x:982:982:systemd Journal Remote:/:/usr/bin/nologin
systemd-network:x:981:981:systemd Network Management:/:/usr/bin/nologin

Bien sûr, il existe des options que nous pouvons définir lors de l'exécution de la commande pour obtenir la sortie personnalisée.

Sortir un nombre spécifique de lignes à l'aide de la commande head

Si vous souhaitez récupérer un nombre de lignes différent des 10 par défaut, alors -n L'option est utilisée avec un entier indiquant le nombre de lignes à récupérer.

Par exemple, la commande suivante affichera les 3 premières lignes de /etc/passwd fichier.

head -n 3 /etc/passwd
root:x:0:0::/root:/bin/bash
bin:x:1:1::/:/usr/bin/nologin
daemon:x:2:2::/:/usr/bin/nologin

Sortir un nombre spécifique d'octets à l'aide de la commande head

En plus de la head La commande peut également imprimer le contenu du fichier par octet. Passez simplement le -c option à la commande. Gardez à l'esprit que la nouvelle ligne compte comme un seul caractère, donc si head imprime un retour à la ligne, il le comptera comme un octet.

Par exemple, la commande suivante affichera les 8 premiers octets de /etc/passwd fichier.

head -c 8 /etc/passwd
root:x:0

Sortir plusieurs fichiers à l'aide de la commande head

Bien sûr, la head La commande peut également gérer plusieurs fichiers. Par exemple, la commande suivante affichera les 3 premières lignes de /etc/passwd et /etc/group fichiers.

head -n 3 /etc/passwd /etc/group
==> /etc/passwd <==
root:x:0:0::/root:/bin/bash
bin:x:1:1::/:/usr/bin/nologin
daemon:x:2:2::/:/usr/bin/nologin

==> /etc/group <==
root:x:0:brltty,root
sys:x:3:bin
mem:x:8:

Ajout du -q l'option de l'exemple ci-dessus supprimera les en-têtes donnant les noms de fichiers.

head -q -n 3 /etc/passwd /etc/group
root:x:0:0::/root:/bin/bash
bin:x:1:1::/:/usr/bin/nologin
daemon:x:2:2::/:/usr/bin/nologin
root:x:0:brltty,root
sys:x:3:bin
mem:x:8:

Comment utiliser la commande head avec des tuyaux

La head La commande peut être redirigée vers d'autres commandes. Dans l'exemple suivant, la sortie de ls la commande est redirigée vers head pour afficher les cinq derniers fichiers ou dossiers modifiés dans /etc répertoire.

ls -t /etc | head -n 5
ld.so.cache
resolv.conf
systemd
libreoffice
profile.d

Vous devriez maintenant avoir une bonne compréhension de l'utilisation de Linux head commande. Maintenant, regardons la tail commande.

Commande Tail sous Linux

La commande Tail sous Linux est identique à head commande. Contrairement à la head commande, cependant, la tail commande imprime le dernier nombre de lignes (10 lignes par défaut) d'un certain fichier.

La syntaxe de base de la commande tail est :

tail [OPTIONS] FILES

Par exemple, la commande suivante imprimera les 10 dernières lignes de /etc/locale.gen fichier.

tail /etc/locale.gen
#zh_HK.UTF-8 UTF-8
#zh_HK BIG5-HKSCS
#zh_SG.UTF-8 UTF-8
#zh_SG.GBK GBK
#zh_SG GB2312
#zh_TW.EUC-TW EUC-TW
#zh_TW.UTF-8 UTF-8
#zh_TW BIG5
#zu_ZA.UTF-8 UTF-8
#zu_ZA ISO-8859-1

Sortir un nombre spécifique de lignes à l'aide de la commande tail

Similaire à la head commande, vous pouvez également imprimer les dernières lignes en utilisant le -n comme indiqué ci-dessous.

tail -n 3 /etc/locale.gen
#zh_TW BIG5
#zu_ZA.UTF-8 UTF-8
#zu_ZA ISO-8859-1

Comment utiliser la commande tail avec des tuyaux

Auparavant, nous avons canalisé la sortie de head en ls . Nous pouvons également diriger la sortie d'autres commandes vers tail .

Par exemple, pour identifier les cinq fichiers ou dossiers dans /etc répertoire avec les heures de modification les plus anciennes et dirigez la sortie vers tail :

ls -t /etc/ | tail -n 5
wpa_supplicant
libpaper.d
papersize
mdadm.conf
gssapi_mech.conf

Surveiller un fichier pour les modifications à l'aide de la commande tail

Il y a une fonctionnalité plus puissante dans tail commande. Parfois, le fichier d'entrée que nous voulons vérifier change. Par exemple, une application en cours d'exécution peut ajouter sa sortie à un fichier journal. Si nous exécutons la tail commande avec -f option sur le fichier changeant, toutes les lignes nouvellement ajoutées seront ajoutées à la sortie standard. Cela pourrait être de loin l'option la plus utile et la plus couramment utilisée pour tail commande.

Par exemple, vous pouvez voir les nouvelles lignes ajoutées à la fin d'un fichier journal Nginx, au fur et à mesure de leur ajout, comme ceci :

tail -f /var/log/nginx/access.log
172.16.1.122 - - [08/Apr/2021:08:15:32 +0000] "POST /wp-admin/admin-ajax.php HTTP/1.1" 200 109 "https://linuxwizard.com/wp-admin/post.php?post=18254&action=edit" "Mozilla/5.0 (X11; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0" 
172.16.1.122 - - [08/Apr/2021:08:19:27 +0000] "GET /feed/ HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1" 
172.16.1.122 - - [08/Apr/2021:08:19:49 +0000] "HEAD /feed/ HTTP/1.1" 200 0 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36" 

Au fur et à mesure que chaque nouvelle entrée de journal est ajoutée au fichier journal, tail mettra à jour son affichage dans la fenêtre du terminal.

Comment utiliser les commandes head et tail ensemble sous Linux

Comme tail et head commandes impriment différentes parties de fichiers, nous pouvons combiner ces deux pour imprimer un filtrage avancé du contenu du fichier. Par exemple, si vous souhaitez lire le contenu au milieu d'un fichier, vous devez utiliser les deux commandes ensemble.

Disons que nous voulons passer de la 5ème à la 10ème ligne du /etc/passwd dossier. Au début, head la commande récupérera les 10 premières lignes et tail la commande récupérera les 5 dernières lignes de la sortie de head commande.

head -n 10 /etc/passwd | tail -n 5
http:x:33:33::/srv/http:/usr/bin/nologin
nobody:x:65534:65534:Nobody:/:/usr/bin/nologin
dbus:x:81:81:System Message Bus:/:/usr/bin/nologin
systemd-journal-remote:x:982:982:systemd Journal Remote:/:/usr/bin/nologin
systemd-network:x:981:981:systemd Network Management:/:/usr/bin/nologin

Conclusion

C'est tout pour le moment. Dans cet article, nous avons appris quelques utilisations typiques des deux commandes à travers des exemples. Comme vous pouvez le voir, la tail et la head Les commandes sont très utiles pour contrôler exactement le contenu du fichier qui s'affichera à l'écran. Certes, ce sont des commandes flexibles qui peuvent grandement améliorer la gestion de vos fichiers. Essayez-les.

Besoin de plus de détails ? Vérifiez la head et la tail pages de manuel des commandes.


Linux
  1. Comment utiliser les commandes 'cat' et 'tac' avec des exemples sous Linux

  2. Commandes Linux - Présentation et exemples

  3. Commande principale Linux avec exemples

  4. Commande Linux Traceroute, expliquée avec des exemples

  5. 20 commandes Linux de base pour les débutants expliquées avec des exemples

Les commandes alias et unalias expliquées avec des exemples

Commande Tr sous Linux expliquée avec des exemples

w Commande expliquée avec des exemples sous Linux

Autorisations et propriété des fichiers Linux expliquées avec des exemples

Explication de la commande Linux tee (avec exemples)

La commande Linux csplit expliquée (avec des exemples)