giovedì 14 gennaio 2010

Redirezione dell'input/output

Normalmente lo standard output e lo standard error vengono visualizzati sul display dove si trova la shell, mentre lo standard input viene preso dalla tastiera.
In Linux è tuttavia possibile ridirigere l'output oppure l'input a/da un altro dispositivo oppure file.
Per esempio, per ridirigere l'output di un comando sul file outputFile basta scrivere:
$ command > outputFile
In questo modo, se outputFile non esiste ancora viene creato automaticamente, ma se esiste già, tutto il suo contenuto viene cancellato e sostituito dall'output del comando command.
Per evitare che il contenuto del file di output venga cancellato, bisogna scrivere:
$ command >> outputFile
L'output di command viene inserito in coda al file outputFile.
Questo per quanto riguarda lo standard input; per ridirigere i messaggi d'errore:
$ command 2> errorFile
$ command 2>> errorFile
E' possibile ridirigere entrambi gli stream contemporaneamente:
$ command > outputFile 2> errorFile
E per ridirigerli sullo stesso file:
$ command > outErrFile 2> &1
Invece, per eseguire un comando dandogli come ingresso il contenuto di un file anziché doverlo digitare dalla tastiera:
$ command <> /dev/null
$ command 2> /dev/null
$ command > /dev/null 2> /dev/null
Così è possibile filtrare l'output lasciando solo i messaggi di errore oppure lo standard output del comando, oppure nessuno dei due.

Esempi di utilizzo:

1) Esecuzione di un comando senza output:
Per eseguire un comando senza che questo mandi messaggi di output:
$ command > /dev/null
$ command 2> /dev/null
$ command > /dev/null 2> /dev/null
Così è possibile filtrare l'output lasciando solo i messaggi di errore oppure lo standard output del comando, oppure nessuno dei due.

2) Concatenazione di più file in uno solo:
Per far questo ci viene bene il comando cat, che stampa il contenuto di un file sullo standard output. Passandogli più file, questi vengono stampati uno di seguito all'altro:
cat file1 file2 file3 ... fileN > catFile

Si comincia...

Inizia oggi questa guida di linux per principianti.
A breve i primi post con i consigli per risolvere i più comuni problemi con Linux.

Spero che possa rivelarsi utile.