Exercice sur les commandes head et tail
- Affichez les 15 premières lignes du fichier /etc/hosts, les 15 dernières lignes, toutes les lignes à partir de la quinzième, les lignes 15 à 20.
À propos du fichier /etc/hosts : les ordinateurs sur l'Internet sont désignés par une adresse IP, constituée de 4 nombres entre 0 et 255 séparés par des points. C'est cette adresse IP qui permet à un ordinateur d'envoyer un message (datagramme IP) à un autre.
Cependant, mémoriser les adresses IP n'est pas commode pour un humain. Pour cette raison, les ordinateurs ont aussi un «nom», constitué d'un nombre variable de composantes séparées par des points (par exemple, research.att.com).
Le mécanisme de conversion d'un nom en adresse IP (ou le mécanisme inverse) s'appelle la «résolution de noms». Elle se fait normalement par l'intermédiaire de nameservers, ordinateurs sur lequel tourne le programme BIND, qui se chargent de répondre aux questions de résolution de noms.
Cependant, pour certaines machines très communément accédées depuis un ordinateur donné (par exemple, les machines de la même salle) ou bien pour éviter d'avoir à configurer un nameserver, on préfère parfois utiliser le fichier /etc/hosts : celui-ci définit un certain nombre de conversions nom -> adresse IP qui seront consultées avant les nameservers.
La bibliothèque qui se charge de faire la traduction, et qui consulte d'abord le /etc/hosts puis les nameservers, s'appelle la libresolv.
- Afficher les 15 premières lignes de /etc/hosts :head -15 /etc/hosts
- Afficher les 15 dernières lignes de /etc/hosts :tail -15 /etc/hosts
- Afficher toutes les lignes à partir de la quinzième :tail +15 /etc/hosts
- Affichez les lignes 15 à 20 :head -20 /etc/hosts | tail -6
- Récupérer les lignes 5 à 9 d'un fichier de 12 lignes
Il y a deux solutions :
- Prendre les neuf premières lignes, et n'en garder que les cinq dernières (de 5 à 9 inclus) :head -9 fichier | tail -5
- Prendre les 8 dernières lignes (de 5 à 12 inclus) et n'en garder que les 5 premières :tail -8 fichier | head -5
- Comment afficher la cinquième ligne d'un fichier ?
On utilise la commande head pour extraire les cinq premières lignes du fichier, puis la commande tail pour ne conserver que la dernière des cinq :
head -5 fichier | tail -1