Skip to content

Latest commit

 

History

History
80 lines (40 loc) · 2.25 KB

redirezione_linux.md

File metadata and controls

80 lines (40 loc) · 2.25 KB

Redirezione su Linux/Unix

Streams

In un sistema Linux/Unix input e output sono gestiti con tre flussi:

  • standard input (stdin) (0)

Lo standard input è lo stream da cui un programma legge i dati di input

  • standard output (stdout) (1)

Lo standard output è lo stream su cui un programma scrive i dati in output

  • standard error (stderr) (2)

Lo standard error è lo stream su cui un programma scrive i messaggi di errore o diagnostica

Redirezione del flusso (stream redirection)

Sovrascrivere

> standard output

< standard input

2> standard error

Accodare

>> standard output

<< standard input

2>> standard error

Redirezione dello stderr su stdout

& rappresenta il file descriptor associato ad un comando o ad un file.

Una delle possibilità permesse è la redirezione di uno stream in un altro. In particolare vediamo come redirigere lo standard error su quello di output in modo da essere processati insieme.

Mettiamo di voler cercare il file profile.conf.

find / -name profile.conf > results 2>&1

In questo caso abbiamo scritto il risultato del comando find in un file results, reindirizzando sia lo stdin e lo stdout nel file.

Senza la redirezione, lo stderr sarebbe stato visualizzato sullo schermo.

Pipe

Viene utilizzato per ridirigere lo stream di un programma verso un altro. Quando lo standard output di un programma è mandato ad un altro attraverso il pipe viene visualizzato sullo schermo solo il risultato del secondo programma.

Esempio:

ls | less

L'output di ls diventa l'input del comando less. In questo modo l'output finale è quello di less

Filtri (TODO improve)

  • grep ritorna il testo che corrisponde alla stringa passata a grep

  • wc conta caratteri, righe e parole

  • tee ridirige lo standard input sia allo standard out che a uno più file

wc /etc/magic | tee magic_count.txt

Fonti