GNU/Linux >> Linux Esercitazione >  >> Linux

8 Comando Tee Linux con esempi

Il comando Linux tee viene utilizzato per il concatenamento e il reindirizzamento delle attività, è possibile reindirizzare l'output e/o gli errori a un file e non verrà mostrato sul terminale. Allo stesso modo, utilizzando il concatenamento, l'output di un comando può essere fornito come input per il secondo comando e successivamente per il terzo comando e così via, ma una volta reindirizzato l'output a un file, non è possibile concatenarlo con altri comandi.

Linux tee può essere utilizzato per ottenere entrambi questi risultati insieme, ovvero memorizzare il risultato in un file mentre si concatena lo stesso output a un altro comando.

In questo tutorial, discuteremo come utilizzare Linux tee con alcuni esempi.

Sintassi del comando Tee

Il comando tee legge sostanzialmente dallo standard input e scrive sullo standard output e sui file. Di seguito è riportata la sintassi del comando:

$ command | tee [OPTION]... [FILE]...

Gli esempi seguenti dovrebbero darci un'idea migliore di come funziona il comando.

1) Come scrivere sullo standard output e su un file

Per scrivere sullo standard output e su un file, usa tee dopo una pipe e specifica il file.

$ sudo ls /home/smart | tee folders_of_smart.txt

Ora possiamo andare su folders_of_smart.txt e vedere il contenuto del file digitando il comando seguente.

$ sudo nano folders_of_smart.txt
  Output:
  folders_of_smart.txt
  foo.txt
  output.txt
  rootlisting.txt

2) Come scrivere su un file e aggiungere l'output

Per aggiungere l'output al file esistente, useremo -a opzione.

$ sudo echo 'Movies' | tee -a folders_of_smart.txt

Ora possiamo andare su folders_of_smart.txt e vedere il contenuto del file digitando il comando seguente.

$ sudo nano folders_of_smart.txt
  Output:
  folders_of_smart.txt
  foo.txt
  output.txt
  rootlisting.txt
  Movies

3) Come scrivere su più file

Per scrivere su più file, dobbiamo solo menzionare i loro nomi nella riga di comando.

$ sudo ping facebook.com | tee output1.txt output2.txt output3.txt

Ora possiamo andare su output1.txt , output2.txt e vedere il contenuto del file digitando il comando seguente.

$ sudo nano output1.txt
$ sudo nano output2.txt
  Output:
  PING facebook.com(edge-star-mini6-shv-02-dfw5.facebook.com (2a03:2880:f134:183:face:b00c:0:25de)) 5$
  64 bytes from edge-star-mini6-shv-02-dfw5.facebook.com (2a03:2880:f134:183:face:b00c:0:25de): icmp_$
  64 bytes from edge-star-mini6-shv-02-dfw5.facebook.com (2a03:2880:f134:183:face:b00c:0:25de): icmp_$

4) Come reindirizzare l'output di un comando a un altro

Possiamo anche trasmettere l'output come input ad altri comandi. Ad esempio, il comando seguente non elencherà tutti i nomi delle cartelle in folders_of_smart.txt ma elenca tramite grep ^o comanda che la cartella inizi con la lettera o.

$ sudo ls /home/smart | tee folders_of_smart.txt | grep ^o
  output:
  output1.txt
  output2.txt
  output3.txt
  output.txt

Un altro esempio, elencheremo /etc directory e quindi l'output viene archiviato nel file denominato stage1.txt , Questo output viene filtrato tramite il comando grep per le righe che iniziano con la lettera i, Questo output filtrato viene archiviato nel file stage2.txt .

Infine, l'output filtrato viene ordinato in modo inverso utilizzando l'ordinamento -r comando. Questo output finale viene visualizzato sul terminale.

$ ls /etc | tee stage1.txt | grep ^i | tee stage2.txt | sort -r
  output:
  issue.net
  issue
  iscsi
  iproute2
  inputrc
  initramfs-tools
  init.d
  init

5) Come guardare i file di registro e scrivere su un file

Possiamo analizzare il HTTP2 traffico che attraversa un apache2 server utilizzando tee comando, i registri in tempo reale possono essere trasmessi in streaming allo standard output e anche scritti in un file per ulteriori analisi in seguito.

$ sudo tail -f /var/log/apache2/access.log | grep --line-buffered "HTTP/2.0" | tee -a http2.log

6) Come scrivere su un file privilegiato usando tee

Quando vogliamo scrivere su un file di proprietà di root come folder_of_root.txt , useremo sudo prima di tee comando come nell'esempio seguente.

$ sudo echo 'Documents' | sudo tee -a folder_of_root.txt

Ci verrà richiesta la password di root, inserire la password di root e le modifiche verranno salvate in folder_of_root.txt .

7) Come utilizzare il comando tee con lo script Python

Possiamo usare tee comando con script python per memorizzare l'output in un file e visualizzare l'output sullo schermo, in primo luogo, scriveremo lo script python per calcolare l'area del cerchio come di seguito e salvarlo in area.py file.

    # -*- coding: utf-8 -*-
    """This script calculate the area of circle"""
    from math import pi as pi
    from math import ceil as ceil

    radius = 2.5

    area = pi * radius**2

    print('The area of circle is', ceil(area))

Cambieremo il valore di raggio e aggiungeremo l'output a area.txt .

$ python area.py | tee -a area.txt
    Output
    ('The area of circle is for radius 2', 13.0)
    ('The area of circle is for radius 2.5', 20.0)
    ('The area of circle is for radius 3', 29.0)
    ('The area of circle is for radius 3.5', 39.0)

8) Come utilizzare il comando tee con lo script Bash

Possiamo usare tee comando con lo script bash per memorizzare l'output in un file e visualizzare l'output sullo schermo, in primo luogo, scriveremo lo script bash per visualizzare l'output di questo comando pwd , ls e $HOME come di seguito e salvalo in bash.txt file.

    #!/bin/bash
    echo "`pwd`";
    echo "`ls`";
    echo "$HOME";
$ ./bash.txt | tee smart.txt
    Output
    /media/disk
    bash.txt
    flask.pdf
    smart.py
    smart.txt
    VirtualBox-5.2-5.2.14_123301_el6-1.x86_64.rpm
    /home/smart

Il comando tee è uno strumento davvero sorprendente, possiamo leggere lo standard input e scriverlo sia nello standard output che in uno o più file.

Leggi anche:

  • Come utilizzare il comando Linux Tr con esempi

Linux
  1. Comando wc Linux con esempi

  2. Comando Tee Linux con esempi

  3. Comando JQ in Linux con esempi

  4. dd Esempi di comandi in Linux

  5. tee Esempi di comandi in Linux

Comando IP Linux con esempi

15 Comando Linux ps con esempi

Comando IP Linux con esempi

Il comando Tee in Linux spiegato con esempi

Esempi di comandi tee Linux

Spiegazione del comando tee di Linux (con esempi)