GNU/Linux >> Linux Esercitazione >  >> Linux

Pipe e reindirizzamento in Linux - Spiegazione!

Tempo per alcune nozioni di base su Linux. Perché la cosa più importante in ogni campo è:avere le tue basi in chiaro! Parliamo quindi di Pipe e reindirizzamento in Linux .

Cosa sono le pipe e il reindirizzamento in Linux?

Reindirizzamento

Ogni singolo processo in Linux ha almeno 3 canali di comunicazione disponibili:

  • Input standard - STDIN
  • Uscita standard - STDOUT
  • Errore standard - STDERR

Il kernel stesso imposta quei canali per conto del processo. Il processo stesso non sa necessariamente dove portano. La maggior parte dei comandi Linux accetta input da STDIN e scrivi l'output in STDOUT . I messaggi di errore vengono scritti in STDERR . Ciò ti consente di collegare i comandi insieme per creare pipeline.

The Shell utilizza i simboli < ,> e >> come istruzioni per reindirizzare le istruzioni di un comando di input o output verso o da un file. Il < il simbolo sta collegando STDIN del comando al contenuto di un file esistente. Il > e il >> i simboli reindirizzanoSTDOUT . > sostituisce il contenuto esistente del file e il >> i simboli si aggiungono ad essi.

Diamo un'occhiata a un paio di esempi.

Il comando seguente memorizzerà il testo digitato tra " " in un file. Se il file non esiste, verrà creato.

echo "Test Message" > testmessage

Il comando successivo invierebbe un'e-mail con il contenuto di quel file, quindi solo il testo, non il file stesso, all'utente Peter.

mail -s "testmsg" peter < testmessage

Un esempio con il comando trova

Se utilizziamo il comando find otteniamo una bella dimostrazione del motivo per cui vorresti gestire STDOUT e STDERR separatamente. Se eseguiamo il seguente comando:

find / -name core

Di solito riceviamo molti messaggi di errore di autorizzazione negata. Per eliminare tutti quei messaggi di errore puoi invece eseguire il seguente comando:

find / -name core 2> /dev/null

Il che ci dà un risultato molto più pulito.

Tubi

Se vogliamo collegare determinati comandi, o più precisamente lo STDOUT di un comando e lo STDIN di un altro, possiamo utilizzare il simbolo Pipe | fare quello. Facciamo un esempio:

ls | head -4

Ciò che fa è collegare il comando ls con il comando head tramite la pipe | . Significa che sta eseguendo ls comando con la testa -4 estensioni, elencando solo i primi 4 file di quella cartella. Potresti anche andare avanti e inviare un altro comando alla fine di questo.

Se vuoi che il secondo comando venga eseguito solo quando il primo ha avuto successo, puoi usare && simboli per quello. Ad esempio:

lpr /tmp/test && rm /tmp/test

Rimuove il file di prova solo se è stato prima messo in coda per la stampa.

D'altra parte, il || command eseguirà il secondo comando solo se il primo comando fallisce.

Conclusione

Se lavori regolarmente con Linux, sapere cosa fanno Pipes e Redirection in Linux è molto importante. Li userai molto se devi lavorare sulla riga di comando. Farò più di quei bit più brevi di Linux Basics in futuro. Non voglio che quegli articoli diventino troppo lunghi in modo che tu possa prendere le informazioni più facilmente. Inoltre, controlla altri tutorial su Linux e Open Source!


Linux
  1. Lavorare con l'output di input e il reindirizzamento degli errori in Linux

  2. Spiegazione del comando Linux wc per principianti (6 esempi)

  3. Io reindirizzamento e il comando principale?

  4. Comando wc Linux

  5. ln Esempi di comandi in Linux

Comando Gzip in Linux

Comando Gunzip in Linux

Comando Stat in Linux

Spiegazione del comando Linux Stat

Spiegazione del comando Arping su Linux

Spiegazione:input, output e reindirizzamento degli errori in Linux