GNU/Linux >> Tutoriels Linux >  >> Linux

8 Commande Linux Tee avec exemples

La commande Linux tee est utilisée pour le chaînage et la redirection des tâches, vous pouvez rediriger la sortie et/ou les erreurs vers un fichier et cela ne sera pas affiché sur le terminal. De même, en utilisant le chaînage, la sortie d'une commande peut être donnée comme entrée à la deuxième commande et ensuite à la troisième commande et ainsi de suite, mais une fois que vous redirigez la sortie vers un fichier, vous ne pouvez pas la chaîner avec d'autres commandes.

Linux tee peut être utilisé pour obtenir ces deux résultats ensemble, c'est-à-dire stocker le résultat dans un fichier tout en enchaînant la même sortie à une autre commande.

Dans ce didacticiel, nous expliquerons comment utiliser Linux tee avec quelques exemples.

Syntaxe de la commande Tee

La commande tee lit essentiellement à partir de l'entrée standard et écrit dans la sortie et les fichiers standard. Voici la syntaxe de la commande :

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

Les exemples suivants devraient nous donner une meilleure idée du fonctionnement de la commande.

1) Comment écrire sur la sortie standard et un fichier

Pour écrire sur la sortie standard et un fichier, utilisez tee après un tube et spécifiez le fichier.

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

Nous pouvons maintenant accéder à folders_of_smart.txt et voir le contenu du fichier en tapant la commande ci-dessous.

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

2) Comment écrire dans un fichier et ajouter une sortie

Pour ajouter la sortie au fichier existant, nous utiliserons -a option.

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

Nous pouvons maintenant accéder à folders_of_smart.txt et voir le contenu du fichier en tapant la commande ci-dessous.

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

3) Comment écrire dans plusieurs fichiers

Pour écrire dans plusieurs fichiers, il suffit de mentionner leurs noms dans la ligne de commande.

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

Nous pouvons maintenant accéder à output1.txt , output2.txt et voir le contenu du fichier en tapant la commande ci-dessous.

$ 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) Comment rediriger la sortie d'une commande vers une autre

Nous pouvons également transmettre la sortie en entrée à d'autres commandes. Par exemple, la commande suivante ne listera pas tous les noms de dossier dans folders_of_smart.txt mais liste via grep ^o commande le dossier commençant par la lettre o.

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

Autre exemple, nous allons lister /etc répertoires, puis la sortie est stockée dans le fichier nommé stage1.txt , Cette sortie est filtrée via la commande grep pour les lignes commençant par la lettre i, Cette sortie filtrée est stockée dans le fichier stage2.txt .

Enfin, la sortie filtrée est triée à l'envers à l'aide de sort -r commande. Cette sortie finale est affichée sur le terminal.

$ 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) Comment consulter les fichiers journaux et écrire dans un fichier

Nous pouvons analyser le HTTP2 le trafic passant par un apache2 serveur en utilisant tee commande, les journaux en direct peuvent être diffusés sur la sortie standard et également écrits dans un fichier pour une analyse ultérieure ultérieure.

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

6) Comment écrire dans un fichier privilégié en utilisant tee

Lorsque nous voulons écrire dans un fichier appartenant à root comme folder_of_root.txt , nous utiliserons sudo avant tee commande comme dans l'exemple ci-dessous.

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

On nous demandera le mot de passe root, entrez le mot de passe root et les modifications seront enregistrées dans folder_of_root.txt .

7) Comment utiliser la commande tee avec le script Python

Nous pouvons utiliser tee commande avec un script python pour stocker la sortie dans un fichier et afficher la sortie à l'écran. Tout d'abord, nous allons écrire un script python pour calculer la surface du cercle comme ci-dessous et l'enregistrer dans area.py fichier.

    # -*- 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))

Nous allons changer la valeur du rayon et ajouter la sortie à 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) Comment utiliser la commande tee avec le script bash

Nous pouvons utiliser tee commande avec un script bash pour stocker la sortie dans un fichier et afficher la sortie à l'écran. Tout d'abord, nous allons écrire un script bash pour afficher la sortie de ces commandes pwd , ls et $HOME comme ci-dessous et enregistrez-le dans bash.txt fichier.

    #!/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

La commande tee est un outil très étonnant, nous pouvons lire l'entrée standard et l'écrire à la fois sur la sortie standard et sur un ou plusieurs fichiers.

Lire aussi :

  • Comment utiliser la commande Linux Tr avec des exemples

Linux
  1. Commande Linux wc avec exemples

  2. Commande Linux Tee avec exemples

  3. Commande JQ sous Linux avec exemples

  4. dd Exemples de commandes sous Linux

  5. tee Exemples de commandes sous Linux

Commande Linux ip avec exemples

15 Commande Linux ps avec exemples

Commande IP Linux avec exemples

La commande Tee sous Linux expliquée avec des exemples

Linux tee Exemples de commandes

Explication de la commande Linux tee (avec exemples)