Ricerca nel sito web

Linux mkfifo Command Tutorial per principianti (con esempi)


Su questa pagina

  1. Comando Linux mkfifo
  2. D1. Cosa sono esattamente le pipe con nome?
  3. Q2. Come identificare le pipe con nome?
  4. Q3. Come impostare le autorizzazioni di accesso personalizzate?
  5. Conclusione

Se sei anche un utente moderato della riga di comando di Linux, devi essere a conoscenza delle pipe, una caratteristica fondamentale della riga di comando che consente ai processi di comunicare. Quindi c'è un concetto di pipe con nome (sì, pipe con nomi, in modo che tu possa fare di più con le pipe). Il comando mkfifo ti consente di creare tali pipe con nome.

In questo tutorial, discuteremo le basi di mkfifo utilizzando alcuni esempi di facile comprensione. Ma prima di farlo, vale la pena menzionare che tutti gli esempi qui sono stati testati su Ubuntu 22.04 LTS.

Comando Linux mkfifo

Il comando mkfifo in pratica ti consente di creare FIFO (ovvero pipe con nome). Di seguito la sintassi del comando:

mkfifo [OPTION]... NAME...

Ed ecco come lo spiega la pagina man degli strumenti:

Create named pipes (FIFOs) with the given NAMEs.

Di seguito sono riportati alcuni esempi in stile Q&A che dovrebbero darti una buona idea di come funziona mkfifo.

Q1. Cosa sono esattamente le pipe con nome?

Per capirlo, dovresti prima essere a conoscenza del concetto di tubi di base. Avrai visto comandi che contengono una barra verticale (|). Questa barra è chiamata pipe. Quello che fa è creare un canale di comunicazione tra i due processi (quando viene eseguito il comando completo).

Per esempio:

ls | grep .txt

Il comando sopra menzionato è composto da due programmi: grep. Entrambi questi programmi sono separati da una pipe (|). Quindi ciò che pipe fa qui è creare un canale di comunicazione tra questi programmi: quando viene eseguito il comando di cui sopra, l'output di ls viene inviato come input a grep. Quindi, alla fine, l'output che viene visualizzato sul terminale è costituito solo da quelle voci che contengono una stringa .txt.

Quindi è stato un rapido ripasso delle pipe normali. Ora arriva il concetto di pipe con nome. Come suggerisce il nome stesso, si tratta di pipe con nomi. Puoi creare una pipe con nome usando il comando mkfifo. Per esempio:

mkfifo pipe2

Quindi pipe2 ora è una pipe con nome. Ora arriva la domanda in che modo le pipe con nome sono più utili? Bene, considera il caso in cui hai un processo in esecuzione in un terminale e produce output, e quello che vuoi è canalizzare quell'output su un terminale diverso. Quindi qui, una pipa con nome potrebbe essere di grande aiuto.

Ad esempio, supponiamo che ls sia il processo in esecuzione nel primo terminale e che tu voglia vedere il suo output in un terminale diverso. Quindi ecco cosa puoi fare:

ls > pipe2

ed ecco cosa puoi fare nel secondo terminale:

cat < pipe2

D2. Come identificare le pipe con nome?

È possibile accedere alle pipe con nome normalmente come ai file. Ciò significa che puoi usare il comando ls per accedervi. Se vedi i permessi di accesso per una named pipe, vedrai una p all'inizio. Ciò significa che il file in questione è una named pipe. Ecco un esempio:

D3. Come impostare le autorizzazioni di accesso personalizzate?

Come puoi vedere nelle domande e risposte precedenti, le autorizzazioni di accesso predefinite per le named pipe sono rw, rw e r (rispettivamente per utente, gruppo e altri). Tuttavia, se lo desideri, puoi anche impostare autorizzazioni personalizzate, cosa che puoi fare utilizzando l'opzione -m.

Per esempio:

mkfifo pipe3 -m700

Lo screenshot seguente conferma che sono state impostate le autorizzazioni personalizzate:

Per saperne di più su mkfifo, puoi usare le opzioni --help e --version.

Conclusione

Quindi, a seconda del tipo di lavoro svolto sulla riga di comando di Linux, il comando mkfifo può rivelarsi molto utile. Una volta che hai finito con l'utilizzo di base che abbiamo discusso qui, puoi saperne di più sullo strumento andando alla sua pagina man.