13.10. Pipe e pager

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 osservare l'output prima che sparisca dallo schermo?

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

Usate la barra verticale (|) per collegare i comandi.

ls -al /etc | less

Ora è possibile visualizzare il contenuto del file /etc una schermata alla volta. Per scorrere in avanti il documento, premete [Barra spaziatrice]; per tornare alla pagina precedente premete [B]; per uscire premete [Q]. Potete anche usare le frecce direzionali per navigare con less.

Per cercare le parole chiavi all'interno di un file di testo usando il comando less, premete [/] e poi digitate la parola chiave che cercate nel file. Per esempio:

/Linux

SuggerimentoSuggerimento
 

Per leggere comodamente i messaggi di avvio, digitate dmesg | less al prompt della shell. Potrete leggere i file una schermata alla volta. Utilizzare i tasti direzionali per esplorare i file. Per cercare dei passaggi particolari all'interno del file, premete [/] e digitate il termine di ricerca.

I pipe possono anche essere utilizzati per stampare solo determinate linee di un file. Digitate:

grep coffee sneakers.txt | lpr

Questo comando, stampa ogni linea del file sneakers.txt che contiene la parola "coffee" (per saperne di più sul comando grep consultate la Sezione 13.11.3).

13.10.1. Il comando more

La differenza principale tra more e less è che less vi permette di spostarvi avanti e indietro mediante i tasti direzionali, mentre more utilizza la [Barra spaziatrice] e il tasto [B] per consentire lo spostamento avanti e indietro.

Visualizzate l'elenco del contenuto della directory /etc usando ls e more.

ls -al /etc | more

Figura 13-10. Unione dell'output del comando ls a quello di more

Per cercare l'output di un file di testo usando il comando more, premete [/] e poi digitate la parola chiave che cercate nel file. Per esempio:

/foo

Utilizzate la [Barra spaziatrice] per scorrere le pagine successive. Premete [q] per uscire.