Pipes

Non, nous ne parlons pas de plomberie ici. Dans Linux, les "conduits" connectent la sortie standard d'une commande à l'entrée standard d'une autre commande.

Revenons une étape en arrière, à la commande ls. Il existe une multitude d'options disponibles avec ls, mais à quoi bon si le contenu d'un répertoire défile trop rapidement pour que vous puissiez le visualiser ?

Visualisons le contenu du répertoire /etc.

ls -al /etc
	  

Comment regarder de plus près la sortie avant qu'elle ne disparaisse de l'écran ?

Une solution consiste à diriger la sortie vers un utilitaire nommé less. Désigné sous le nom générique DE "pager", less (équivalent à more) permet de visualiser des informations en ne présentant qu'une page (ou écran) à la fois.

Nous utilisons la barre verticale (|) pour le traitement pipeline des commandes (comme indiqué dans la Figure 15-15).

ls -al /etc | less
	  

A présent, nous pouvons visualiser le contenu écran par écran. Pour avancer d'un écran, appuyez simplement sur la barre d'espacement ; pour revenir à l'écran précédent, appuyez sur B ; pour quitter, appuyez simplement sur Q.

TuyauComment lire vos messages de démarrage
 

Voulez-vous lire ces messages de démarrage plus en détail ? A l'invite du shell, entrez dmesg | less. Vous pourrez lire le fichier écran par écran. Pour vous déplacer vers l'avant, appuyez sur la barre d'espacement ; pour quitter, appuyez sur Q.

Figure 15-15. Traitement pipeline d'une sortie de ls vers less

Nous avons déjà utilisé des "pipes" avant même de les définir.

Dans les précédents renvois aux pages du manuel, nous avons utilisé l'instruction suivante pour imprimer des entrées de page de manuel :

man ls | col -b | lpr
	  

Ici, nous dirigeons la sortie de man ls vers un filtre nommé col avec l'option -b afin de formater le texte pour l'imprimante, puis nous envoyons la sortie vers l'imprimante à l'aide de la commande lpr.

TuyauRésumé
 

Le traitement pipeline vous permet d'envoyer la sortie d'une commande comme entrée d'une autre commande. Par exemple : ls -al /etc | more correspond au traitement pipeline de la sortie de la commande ls vers l'utilitaire more afin de faciliter la visualisation.