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

Linux の tee コマンドの説明 (例付き)

端末で基本的なコマンドを実行すると、通常、出力は端末、つまり標準出力に出力されます。しかし、標準出力に出力するだけでなく、出力をファイルに保存できるとしたらどうでしょうか?これは、tee コマンドが行うことです。 Linux の tee コマンドは、stdin (標準入力) から読み取り、stdout (標準出力) および 1 つまたは複数のファイルに書き込みます。

tee コマンドの基本構文

tee コマンドの構文は次のとおりです。

$ コマンド |ティー [ オプション ] ファイル

次に、tee コマンドの使用例をいくつか見てみましょう。

tee コマンドの基本的な使い方

free を使用してメモリとスワップの使用状況を出力するとします。 コマンドを実行し、memory_usage.txt という名前のファイルに出力を保存します . tee コマンドは次のように呼び出されます。

$ free -h | tee memory_usage.txt

tee コマンドはコマンドから読み取り、出力を memory_usage.txt に保存します

出力が memory_usage.txt に保存されたことを確認するには ファイルは、示されているように cat コマンドを実行します。

$ cat memory_usage.txt

<強い>

出力を複数のファイルに書き込む

さらに、示されているように、出力を複数のファイルに保存できます

$ コマンド |ティー [ オプション ] ファイル 1 ファイル 2 …

以下のコマンドでは、文字列 “Hey, Welcome to Linux” は 2 つのテキスト ファイル file1.txt に保存されます。 およびfile2.txt

$ echo Hey, Welcome to Linux | tee file1.txt file2.txt

<強い>

コンテンツをファイルに追加する

通常、tee コマンドはファイルを上書きしますが、重要な既存のデータが消去される可能性があるため、常に望ましいとは限りません。ありがたいことに、 -a を使用できます ファイルにテキストを追加するオプション。これをテストしてみましょう。

まず、 稼働時間 の出力を書き込みます stats.txt へのコマンド

稼働時間 $ |ティー統計.txt

を使用 これを確認するコマンド。

$ cat stats.txt

次に、 free -h の出力を追加します メモリとスワップの使用状況をファイルに出力するコマンド。

$ free -h | tee -a stats.txt

もう一度、stats.txt の内容を確認してください ファイル。今回は、下のスクリーンショットに示すように、ファイルには 2 つのコマンドの出力が含まれます。これは、 free -h の出力を追加したためです。 stats.txt へのコマンド ファイルであるため、既存のテキストは影響を受けませんでした。

tee コマンドの出力を抑制する

ティー の出力が必要ない場合 コマンドは標準出力に出力され、 /dev/null にリダイレクトできます これは、情報を破棄する特別なデバイスであり、それに供給されます。

df -Th の出力を出力している以下の例を見てください。 コマンドをテキスト ファイルに出力しますが、ターミナルでの出力は抑制します。

$ df -Th | tee disk_usage.txt >/dev/null

tee コマンドに割り込みを無視させる

継続的に実行されているコマンドを停止したい場合があります。その場合、プログラムが中断された後でも、tee コマンドを正常に終了させることを検討してください。これを行うには、 -i を使用します または –割り込みを無視 示されている構文で提供されるオプション。

$ コマンド |ティー -i ファイル名

以下の ping コマンドは、継続的に ping リクエストを Google の DNS ( 8.8.8.8 ) に送信します。 4 つの連続した ping 要求の後、コマンドを中断しました。 T シャツについて -i を呼び出して正常に終了するコマンド オプション。

$ ping 8.8.8.8 | tee -i ping_stats.txt

-i なし オプションを使用すると、統計の出力と要約は出力されません。

tee コマンドを sudo と共に使用する

root ユーザーまたは別のログイン ユーザーが所有するファイルを変更する場合、sudo コマンドを呼び出さずに単に tee コマンドを使用すると、エラーが発生します。

以下の例では、anydesk-stable.list という新しいリポジトリを作成しています。 /etc/apt/sources.list.d の AnyDesk アプリケーション用 root ユーザー用の予約パスです。

$ echo "deb http://deb.anydesk.com/ all main" | tee /etc/apt/sources.list.d/anydesk-stable.list

予想どおり、そのパスでファイルを作成または変更する権限がないため、「権限が拒否されました」というエラーが発生しました。

解決策は tee の前に置くことです 示されているように sudo コマンドを使用します。

$ echo "deb http://deb.anydesk.com/ all main" | sudo tee /etc/apt/sources.list.d/anydesk-stable.list

この際、tee の前に sudo を置いてからコマンドは成功です。

tee コマンドのヘルプ

その他のコマンド オプションと、tee コマンドの使用に関する支援については、以下のコマンドを実行してください。

$ tee --help

さらに、示されているようにマニュアルページを調べてください

$ man tee

バージョンを確認するには、次を実行します:

$ tee --version

<強い>

まとめ

これはすべて Linux の tee コマンドに関するものです。特に、このコマンドは標準入力 ( stdin ) から読み取り、その後標準出力 ( stdout ) およびファイルに書き込みます。


Linux
  1. Linuxのshutdownコマンドを例で説明

  2. Linux Tracerouteコマンド、例を使用して説明

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

  1. 例を含むwcLinuxコマンド

  2. Linuxカットコマンドを6つの例で説明

  3. 例を含むLinuxTeeコマンド

  1. Linuxでの9teeコマンドの例

  2. Linuxipコマンドと例

  3. 初心者向けのLinuxteeコマンドの説明(6例)