GNU/Linux >> Linux の 問題 >  >> Linux

8LinuxTeeコマンドと例

Linux teeコマンドは、タスクのチェーンとリダイレクトに使用されます。出力やエラーをファイルにリダイレクトでき、端末には表示されません。同様に、チェーンを使用すると、1つのコマンドの出力を、2番目のコマンド、さらに3番目のコマンドへの入力として指定できますが、出力をファイルにリダイレクトすると、他のコマンドとチェーンすることはできません。

Linux teeを使用すると、これらの両方の結果を一緒に実現できます。つまり、同じ出力を別のコマンドにチェーンしながら、結果をファイルに保存できます。

このチュートリアルでは、いくつかの例を使用してLinuxteeの使用方法について説明します。

Teeコマンド構文

teeコマンドは、基本的に標準入力から読み取り、標準出力とファイルに書き込みます。コマンドの構文は次のとおりです。

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

次の例は、コマンドがどのように機能するかについてのより良いアイデアを私たちに与えるはずです。

1)標準出力とファイルへの書き込み方法

標準出力とファイルに書き込むには、パイプの後にteeを使用して、ファイルを指定します。

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

これで、folders_of_smart.txtに移動できます。 以下のコマンドを入力して、ファイルの内容を確認してください。

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

2)ファイルへの書き込みと出力の追加方法

既存のファイルに出力を追加するには、-aを使用します オプション。

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

これで、folders_of_smart.txtに移動できます。 以下のコマンドを入力して、ファイルの内容を確認してください。

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

3)複数のファイルに書き込む方法

複数のファイルに書き込むには、コマンドラインでそれらの名前を指定するだけです。

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

これで、output1.txtに移動できます。 、output2.txt 以下のコマンドを入力して、ファイルの内容を確認してください。

$ 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)あるコマンドの出力を別のコマンドにリダイレクトする方法

出力を他のコマンドへの入力として渡すこともできます。たとえば、次のコマンドでは、folders_of_smart.txt内のすべてのフォルダ名が一覧表示されるわけではありません。 ただし、grep ^oを介してリストします フォルダに文字oで始まるように命令します。

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

別の例として、/etcをリストします。 ディレクトリを作成すると、出力はstage1.txtという名前のファイルに保存されます。 、この出力は、文字iで始まる行に対してgrepコマンドでフィルタリングされます。このフィルタリングされた出力は、ファイルstage2.txtに保存されます。 。

最後に、フィルタリングされた出力は、sort -rを使用して逆ソートされます。 指図。この最終出力は端末に表示されます。

$ 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)ログファイルを監視してファイルに書き込む方法

HTTP2を分析できます apache2を通過するトラフィック teeを使用したサーバー コマンド、ライブログを標準出力にストリーミングしたり、後でさらに分析するためにファイルに書き込んだりすることもできます。

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

6)teeを使用して特権ファイルに書き込む方法

rootが所有するファイルに書き込みたい場合 folder_of_root.txtのように 、sudoを使用します teeの前 以下の例のようなコマンド。

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

ルートパスワードの入力を求められ、ルートパスワードを入力すると、変更がfolder_of_root.txtに保存されます。 。

7)Pythonスクリプトでteeコマンドを使用する方法

teeを使用できます Pythonスクリプトを使用してコマンドを実行し、出力をファイルに保存して画面に表示します。まず、Pythonスクリプトを記述して、円の面積を次のように計算し、area.pyに保存します。 ファイル。

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

radiusの値を変更し、出力を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)Bashスクリプトでteeコマンドを使用する方法

teeを使用できます 出力をファイルに保存して画面に出力を表示するbashスクリプトを使用したコマンド最初に、このコマンドの出力を表示するbashスクリプトを記述しますpwdls および$HOME 以下のようにして、bash.txtに保存します ファイル。

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

teeコマンドは非常に驚くべきツールであり、標準入力を読み取り、標準出力と1つ以上のファイルの両方に書き込むことができます。

関連項目:

  • 例でLinuxTrコマンドを使用する方法

Linux
  1. 例を含むLinuxTeeコマンド

  2. LinuxでのJQコマンドと例

  3. Linux での dd コマンドの例

  1. 例を含むwcLinuxコマンド

  2. Linuxのソートコマンドと例

  3. Linux での tee コマンドの例

  1. Linux Catコマンドの使用方法(例付き)

  2. Linuxでのエコーコマンド(例付き)

  3. Linuxでのmanコマンドと例