Canali
20100315081905_91510602_20100315081846_1745368878_pipe_spotlight.png

Bash: pipe e redirezioni

07/05/2010
- A cura di
Linux & Open Source - Pipe e redirezioni sono tra gli strumenti fondamentali di utilizzo della shell Bash, e costituiscono parte del bagaglio di conoscenze di base che un utente della console testuale di Linux deve avere.

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

pipe (1) .

Valutazione

  •  
Voto complessivo 3.5 calcolato su 9 voti

L'incredibile versatilità di Bash viene dimostrata da due caratteristiche estremamente utili della shell: la possibilità di creare pipe o pipeline (dall'inglese "pipe", ovvero "tubo", dove una "pipeline" è una riga di comando fatta di uno o più pipe), che sono come dei vasi comunicanti dove il fluido in uscita da un vaso viene mandato all'interno del vaso successivo per un'ulteriore lavorazione, e le redirezioni, ovvero delle "corsie preferenziali" su cui vengono indirizzati dei flussi di dati, per poi sfociare in delle uscite particolari chiamate descrittori di file, o file descriptors. I file descriptors giocano un ruolo cruciale in entrambe queste funzioni, e prima di andare avanti dobbiamo chiarire che cosa sono.

Descrittori di file

Ricordate gli esempi di file descriptor evidenziati nella guida a dd?

I file descriptors possono essere visti sia come corsie preferenziali che come tubi, attraverso cui passano dei flussi di dati diretti verso un altro descrittore di file, che a sua volta sfocia in un programma o in un file "concreto".

I descrittori di file interagiscono con i programmi di origine o di destinazione così come i segnali elettronici vengono elaborati da più circuiti integrati in cascata, cosicchè all'uscita dell'intero sistema ci sia il segnale filtrato e lavorato, pronto per essere usato nel modo che ci eravamo prefissi.

I file descriptors (o fd [1]) più usati e comuni sono tre:

  • fd0 (descrittore 0, standard input stdin)
  • fd1 (descrittore 1, standard output stdout)
  • fd2 (descrittore 2, standard error stderr [2])

Attraverso questi tre descrittori si gioca qualcosa come il 99% dei flussi di entrata e uscita dei programmi UNIX nelle pipe e nelle redirezioni. [3]

Un modo per accedere al contenuto dei descrittori di un programma in esecuzione è entrare nella directory

/proc/$(pidof <programma>)/fd

Dove <programma> è il nome del programma in esecuzione (possiamo chiamarlo anche processo) di cui vogliamo conoscere i descrittori di file. [4]

Accederete ad una lista di link simbolici che fanno riferimento al terminale virtuale in cui è in esecuzione il processo.

Pagina successiva
Esempi con i descrittori

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2014 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising

    • Gen. pagina: 0.48 sec.
    •  | Utenti conn.: 78
    •  | Revisione 2.0.1
    •  | Numero query: 20
    •  | Tempo totale query: 0.21