Linuxでターミナルを操作する場合、作業を簡単にするために使用できるコマンドラインユーティリティが多数あります。そのようなユーティリティの1つは、ティー
です。 。この簡単なガイドでは、Teeとは何か、LinuxでのTeeコマンドの使用法を実際の例とともに学習します。
Teeコマンドの概要
teeは、入力を受け入れ、出力をファイルと標準出力(つまり、ターミナル)に書き込むシンプルなコマンドラインユーティリティです。 Teeコマンドは、出力を複数のファイルにリダイレクトし、さらに出力を処理する場合に、シェルスクリプトで主に使用されます。
TeeコマンドはGNUcoreutils
の一部です 、したがって、すべてのLinuxディストリビューションにプリインストールされています。
Linuxディストリビューションでteeコマンドが使用可能かどうかを確認するには、次のコマンドを実行します。
$ which tee /usr/bin/tee
ティーバージョンを確認するには、-version
を使用できます フラグ。
$ tee --version tee (GNU coreutils) 8.32
teeコマンドヘルプを表示する
teeコマンドを使用したことがない場合は、teeコマンドのヘルプセクションから始めることをお勧めします。
このユーティリティの詳細については、teeコマンドのマニュアルページにアクセスしてください。
$ man tee
-help
を渡すこともできます ヘルプマニュアルを表示するためのteeコマンドへの引数。
$ tee --help
Teeコマンドの構文
Teeコマンドの一般的な構文を以下に示します。
ティー[オプション]…[ファイル]…
出力がリダイレクトされるフラグとファイル名を受け入れます。
teeコマンドで主に使用する2つの重要なフラグがあります。
-
-a
、-追加
フラグ:ファイルに追加します。 -
-i
、-ignore-interrupts
フラグ:割り込み信号を無視します。
ここで、Linuxでのteeコマンドの例をいくつか紹介します。
初心者向けのLinuxTeeコマンドの例
すでに述べたように、teeコマンドは入力を受け入れ、出力と引数として渡されるファイルを端末に出力します。
次の例では、teeコマンドは echo
から入力を受け取ります コマンドを実行し、出力をターミナルと hello.txt
に出力します。 ファイル。
$ echo "Welcome to OSTechNix" | tee hello.txt Welcome to OSTechNix
hello.txt
の内容を確認しましょう ファイル:
$ cat hello.txt Welcome to OSTechNix
パイプ演算子でteeコマンドを使用する
Teeコマンドは、端末への標準入力を出力するだけでなく、それを別のプログラムにパイプしてさらに処理することもできます。
ほとんどの場合、teeコマンドは pipe
と組み合わせて使用されます (|)シェルスクリプトの演算子。
以下の例を見てください。
$ echo "Hello world" | tee hello.txt | rev dlrow olleH
$ cat hello.txt Hello world
上記のコマンドを実行するとどうなるか説明させてください。
エコーコード> コマンドはその出力を送信します
"HelloWorld"
tee
への入力として パイプを介してコマンドします。ティー
コマンドは、指定されたファイルhello.txt
に出力を保存します 。- デフォルトの動作である端末に出力を出力する代わりに、
tee
コマンドパス"HelloWorld"
rev
への入力としての文字列 文字列を逆の順序で出力するコマンド 。
別の例を示します。
次のコマンドは、「ostechnix」というディレクトリを作成し、「ostechnix」の文字数をカウントして、「ostechnix」を端末に出力します。
$ echo "ostechnix" | tee >(xargs mkdir) >(wc -c)
ヘッズアップ: sudo
の使用が必要になる場合があります tee
で 通常のユーザーとしてアクセスできないディレクトリにファイルを作成する場合は、コマンドを実行します。
複数のファイルを渡す
Teeコマンドは、引数として複数のファイルを受け入れ、出力を各ファイルに保存します。
$ echo "Welcome to OSTechNix" | tee hello1.txt hello2.txt hello3.txt Welcome to OSTechNix
各ファイルの内容を確認しましょう:
$ cat hello1.txt
Welcome to OSTechNix
$ cat hello2.txt
Welcome to OSTechNix
$ cat hello3.txt
Welcome to OSTechNix
オーバーライドと追加
tee
のデフォルトの動作 コマンドは、ファイルがすでに利用可能かどうかを検索し、データを新しいもので上書きします。ファイルが利用できない場合は、ファイルが作成されます。
オーバーライドする代わりにデータを追加する場合は、 -a
を使用します または--append
フラグ。
$ cat hello1.txt Welcome to OSTechNix
$ echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt I am using PoP_OS Cosmic Desktop
$ cat hello1.txt Welcome to OSTechNix I am using PoP_OS Cosmic Desktop
Teeとリダイレクト演算子の組み合わせ
出力を端末に出力せず、出力をファイルに書き込むだけの場合は、リダイレクト演算子をteeコマンドと組み合わせることができます。
これは、teeコマンドがパイプチェーンの最後に来る場合にのみ理想的なケースです。ティー出力が次のような別のコマンドにパイプされる場合
最初の例に示されているように、リダイレクト演算子を使用する必要はありません。
$ echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt &> /dev/null
割り込み信号
Teeコマンドには、 -i
を使用してSIGINTに割り込むオプションがあります。 または--ignore-interrupts
フラグ。
意味-CTRL+ C
を押した場合 -i
を使用してteeコマンドを実行しているときにターミナルで フラグを立てると、teeコマンドは信号を中断し、PIPEからEOFを読み取ることによって正常に終了します。
$ { echo Hello world;sleep 10; } | tee -i hello1.txt
Hello world
^C
$ cat hello1.txt
Hello world
概要
Teeは、毎日使用できないシンプルなプログラムです。ただし、シェルスクリプトを作成する場合は、teeコマンドについて知っておくと便利です。これがお役に立てば幸いです。