Reindirizzamento input-output in ubuntu

Reindirizzamento input-output in ubuntu
In Linux, ogni processo ha tre canali di comunicazione: input standard, output standard ed errore standard. Questi canali di comunicazione aiutano gli utenti a interagire con i processi su un sistema Linux. Il canale di comunicazione input standard (STDIN) prende l'ingresso dall'utente tramite il terminale come comando, quindi dopo aver elaborato il comando con il kernel Linux, il terminale visualizza il risultato tramite la comunicazione standard di uscita (STDOUT) o Errore standard (STDERR) canale. L'output standard (stdout) o l'errore standard (stderr) di un comando può essere reindirizzato come input standard (stdin) per un altro comando utilizzando il reindirizzamento I/O ">" e, allo stesso modo, può essere reindirizzato un input standard (stdin) come output standard (stdout) per un altro comando usando il "<” I/O redirection.

Input standard

L'ingresso standard o la stdin è il comando che digitiamo nel nostro terminale per interagire con il kernel Linux.

Ubuntu@ubuntu: ~ $ ls -la

Nell'esempio sopra, "LS -la" è l'ingresso standard o la stdin.

Output standard

L'output standard o lo stdout è l'output di un processo in esecuzione o comando dato al kernel Linux attraverso l'input standard e viene visualizzato sul terminale. Ad esempio, indicato sopra, l'output è come

Ubuntu@ubuntu: ~ $ ls -la
... Snip ..
-RWXR-X --- 1 Ubuntu Ubuntu 89 gennaio 4 2021 Arith.sh
-RW-R-R-- 1 Ubuntu Ubuntu 3771 giugno 3 2020 .Bashrc
DRWX ------ 28 Ubuntu Ubuntu 4096 agosto 13:10 .cache
drwxr-xr-x 36 ubuntu ubuntu 4096 luglio 29 18:30 .configurazione
DRWX ------ 3 Ubuntu Ubuntu 4096 18 novembre 2020 .dBus
drwxr-xr-x 5 ubuntu ubuntu 4096 luglio 30 16:28 desktop
drwxr-xr-x 13 ubuntu ubuntu 12288 luglio 28 19:53 Download
... Snip ..

Ogni output ha un luogo predefinito predefinito dove andare nei sistemi operativi basati su Unix. Di seguito sono riportati alcuni dei metodi per il reindirizzamento.

  • Reindirizzamento di uscita standard ">"
  • Reindirizzamento di input standard "<”
  • Reindirizzamento degli errori standard "2>"
  • Output standard e reindirizzamento degli errori "&>"
  • Reindirizzamento di uscita standard ">>"
  • Reindirizzamento di input standard "<<”
  • Reindirizzamento usando i tubi "|"

Reindirizzamento di uscita standard “>“

Il reindirizzamento dell'output è un metodo in cui l'output standard di un comando può essere reindirizzato ai file o come input standard per un altro comando. Il segno ">" viene utilizzato per il reindirizzamento dell'uscita. Il terminale non mostra l'output; Invece, è scritto in un file o reindirizzato come input a un altro comando. Per esempio

Ubuntu@ubuntu: ~ $ echo ciao mondo>.TXT

O

Ubuntu@ubuntu: ~ $ sudo apt-cache pkgnames> packegnames

Invece dell'output mostrato sul terminale, verrà reindirizzato al file.file txt o pakegsnames. Al fine di confermare se l'output è stato reindirizzato o meno, utilizzare il gatto comanda di leggere i file.

Ubuntu@ubuntu: ~ $ cat file.TXT
Ubuntu@ubuntu: ~ $ cat pakegname

Questo operatore "1>" viene utilizzato anche per il reindirizzamento dell'output standard.

Reindirizzamento di input standard " < ”

Il reindirizzamento input è un metodo in cui l'ingresso standard di un comando viene reindirizzato da un file o un output standard di un altro comando. IL "<” sign is used for input redirection. It is mostly the default action of a command. For example

Ubuntu@ubuntu: ~ $ meno < /etc/passwd

È lo stesso di questo.

Ubuntu@ubuntu: ~ $ meno /etc /passwd

Prende input dal file /etc/passwd Invece di una tastiera. Il “0<” sign can also be used for redirecting standard input.

Reindirizzamento degli errori standard “2>“

Con il metodo di reindirizzamento, gli errori standard possono essere reindirizzati e scritti in un file. Per esempio

Ubuntu@ubuntu: ~ $ sudo apt-get update 2> Errore

In caso di errore, non verrà visualizzato nella finestra del terminale; Piuttosto, verrà archiviato in un file di errore. Se il file di errore esiste già, allora verrà sovrascritto.

Output standard e reindirizzamento degli errori standard “&>“

Con il segno "&>", esiste un modo più efficiente per reindirizzare l'output standard e l'errore standard contemporaneamente con il segno "&>". Per esempio

Ubuntu@ubuntu: ~ $ sudo apt-cache pkgnames &> pkgnames

Tutti i nomi e gli errori dei pacchetti verranno archiviati nel file pkgnames.

Reindirizzamento di uscita standard ">>"

Questo metodo di reindirizzamento reindirizza l'output standard di un comando o un file a un altro file. La differenza è durante l'utilizzo del reindirizzamento ">>", se il file esiste già, i dati verranno aggiunti al file; Quindi il file non verrà sovrascritto.

Ubuntu@ubuntu: ~ $ sudo apt-cache pkgnames >> pkgnames

Se il file pkgnames esiste già, il suo contenuto non verrà sovrascritto; Piuttosto, l'output verrà aggiunto alla fine del file.

Reindirizzamento di input standard " << ”

Questo metodo di reindirizzamento legge l'input dell'utente dal terminale e quindi lo aggiunge al file.

Ubuntu@ubuntu: ~ $ cat pkgnames << pkgnames
> Ubuntu
> Chrome
> pkgnames

Se il file pkgnames esiste già, allora il suo contenuto non verrà sovrascritto.

Reindirizzamento usando i tubi “| "

I tubi vengono spesso usati quando si desidera combinare più comandi. Con i tubi, l'output del primo comando può essere utilizzato come input del secondo comando. Per esempio

Ubuntu@ubuntu: ~ $ sudo apt-cache pkgnames | meno

Nel comando sopra, l'output standard del comando lasciato al tubo "|" Il segno è l'ingresso standard del comando diritto al tubo "|" cartello.

Combinando gli operatori di reindirizzamento

Puoi combinare alcuni degli operatori di reindirizzamento perché sono convenientemente facili da usare e impiegano meno tempo; Alcuni degli operatori di reindirizzamento combinati sono riportati di seguito.

2 >>: Questo operatore viene utilizzato per il reindirizzamento degli errori standard nel file.
: Questo operatore viene utilizzato per i file specificati come input standard e output standard.
> &: Questo operatore reindirizza l'output di un file su un altro.
<&: Questo operatore reindirizza l'input di un file a un altro.
2> & 1: Questo operatore viene utilizzato per il reindirizzamento dell'errore standard all'output standard.
1> & 2: Questo operatore viene utilizzato per il reindirizzamento dell'output standard per un errore standard.

Conclusione

Come amministratore Linux, il reindirizzamento input-output è una routine molto comune nel lavoro quotidiano. Conservare l'output e gli errori per un uso successivo e combinare i comandi multipli semplificano il lavoro e riduci i tempi in modo da poter lavorare diligentemente ed efficiente. Sopra ci sono alcuni suggerimenti da fare in modo che ti aiuteranno a comprendere i reindirizzamenti input-output.