Pipe

In Linux quando si parla di "pipe" si intende un collegamento tra l'output standard di un comando e l'input standard di un altro comando.

Pensate al comando ls illustrato prima. Esistono numerose opzioni disponibili con ls, ma cosa fare se i contenuti della directory scorrono troppo velocemente?

Visualizzate i contenuti della directory /etc:

ls -al /etc

Come leggere l'output prima che sparisca dallo schermo?

Un metodo possibile è quello di inviare l'output all'utility chiamata less. Anche nota come pager, l'utility less consente di visualizzare le informazioni una pagina (o schermata) alla volta.

Usate la barra verticale (|) per collegare i comandi (come visualizzato nella Figura 10-11).

ls -al /etc | less

Ora potete visualizzare le informazioni una pagina per volta. Se dovete scorrere in avanti il documento premete la Barra spaziatrice; per tornare alla pagina precedente, premete b; per uscire, premete q.

SuggerimentoCome leggere i messaggi di avvio
 

Per leggere comodamente i messaggi di avvio, digitate dmesg | less al prompt della shell. Potrete leggere il file, una schermata alla volta. Per passare alla schermata precedente, premete la Barra spaziatrice; per uscire premete Q.

Figura 10-11. Ridirezionare l'output di ls verso less

In realtà le pipe sono già stata presentate in questo manuale. In precedenza, facendo riferimento alle pagine man, avete usato il seguente comando per stampare le pagine del comando ls:

man ls | col -b | lpr

L'output di man ls è stato ridirezionato verso un filtro chiamato col con una opzione -b necessario per formattare il testo da stampare, poi abbiamo ridirezionato l'output verso la stampante con il comando lpr.

Ecco un altro esempio. Digitate:

grep coffee sneakers.txt | lpr

Questo comando stampa tutte le righe del file sneakers.txt in cui compare la parola "coffee" (potete trovare maggiori informazioni sul comando grep nella la sezione Il comando grep).

Il comando more

La differenza principale tra more e less consiste nel fatto che all'interno di un file more vi permette di muovervi solo in avanti, mentre less vi consente di muovervi sia in avanti che indietro.

Date un'occhiata alla pagina man di more, ma aprite la pagina usando proprio il comando more (indirizzando l'output di man al comando more).

	  man more | more