GNU/Linux >> Linux Esercitazione >  >> Linux

Un'introduzione alle pipe e alle named pipe in Linux

In Linux, la pipe comando ti consente di inviare l'output di un comando a un altro. Le tubazioni, come suggerisce il termine, possono reindirizzare l'output standard, l'input o l'errore di un processo a un altro per un'ulteriore elaborazione.

La sintassi per la pipe o unnamed pipe il comando è il | carattere tra due comandi qualsiasi:

Command-1 | Command-2 | …| Command-N

Qui non è possibile accedere alla pipe tramite un'altra sessione; viene creato temporaneamente per accogliere l'esecuzione di Command-1 e reindirizzare lo standard output. Viene eliminato dopo l'esecuzione riuscita.

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Nell'esempio sopra, contents.txt contiene un elenco di tutti i file in una particolare directory, in particolare l'output di ls -al comando. Prima grep i nomi dei file con la parola chiave "file" da contents.txt tramite piping (come mostrato), quindi l'output del cat il comando viene fornito come input per grep comando. Successivamente, aggiungiamo le tubazioni per eseguire awk comando, che mostra la colonna 9 dall'output filtrato da grep comando. Possiamo anche contare il numero di righe in contents.txt usando il wc -l comando.

Una named pipe può durare fino a quando il sistema è attivo e funzionante o fino a quando non viene eliminata. È un file speciale che segue il meccanismo FIFO (first in, first out). Può essere utilizzato proprio come un normale file; cioè, puoi scriverci, leggere da esso e aprirlo o chiuderlo. Per creare una named pipe, il comando è:

mkfifo <pipe-name>

Questo crea un file pipe con nome che può essere utilizzato anche su più sessioni di shell.

Un altro modo per creare una pipe denominata FIFO consiste nell'usare questo comando:

mknod p <pipe-name>

Per reindirizzare un output standard di qualsiasi comando a un altro processo, utilizzare il > simbolo. Per reindirizzare un input standard di qualsiasi comando, usa il < simbolo.

Come mostrato sopra, l'output di ls -al il comando viene reindirizzato a contents.txt e inserito nel file. Allo stesso modo, l'input per tail il comando è fornito come contents.txt tramite il < simbolo.

Qui abbiamo creato una named pipe, my-named-pipe e reindirizzato l'output di ls -al comando nella pipe denominata. Possiamo aprire una nuova sessione di shell e cat il contenuto della named pipe, che mostra l'output di ls -al comando, come precedentemente fornito. Si noti che la dimensione della pipe denominata è zero e ha una designazione di "p".

Quindi, la prossima volta che lavorerai con i comandi sul terminale Linux e ti ritrovi a spostare i dati tra i comandi, si spera che una pipe renda il processo semplice e veloce.


Linux
  1. Comunicazione tra processi in Linux:utilizzo di pipe e code di messaggi

  2. Comandi Linux - Panoramica ed esempi

  3. Come utilizzare pipe e pipe con nome in Linux (con esempi)

  4. Esempi di comandi mkdir e rmdir in Linux

  5. Imposta la capacità del tubo in Linux

Trova comando in Linux (Trova file e directory)

Linux mkfifo Command Tutorial per principianti (con esempi)

Come installare e utilizzare il comando fd in Linux

Opzioni di comando ed esempi di Tee Command in Linux

Introduzione al comando della cronologia in Linux [per principianti]

Cosa sono le pipe in Linux? Come funziona il reindirizzamento dei tubi?