Linux teeコマンドの使い方の詳しい説明

Linux teeコマンドの使い方の詳しい説明

teeコマンドは主にstandout(標準出力ストリーム、通常はコマンド実行ウィンドウ)に出力し、同時にファイルに内容を出力するために使用されます。以下はteeのマニュアルページ情報です。

標準入力から読み取り、標準出力とファイルに書き込む

次に、いくつかのアプリケーション シナリオを通じてteeコマンドについて理解を深めます。

シナリオ 1: ティーコマンドの使い方

tee コマンドの形式は次のとおりです。

tee [オプション]... [ファイル]...

man ファイルの定義から、 tee は標準入力ストリームからデータを読み取ることがわかります。そのため、ここでは簡単なコマンドを使用して、 teeの入力ストリームとして出力ストリームを生成します。ここでは、 pingコマンドを使用します。

[mysql@localhost ~]$ ping baidu.com
PING baidu.com (220.181.57.216) 56(84) バイトのデータ。
220.181.57.216 からの 64 バイト (220.181.57.216): icmp_seq=1 ttl=128 time=30.1 ms
220.181.57.216 からの 64 バイト (220.181.57.216): icmp_seq=2 ttl=128 time=33.1 ms
220.181.57.216 からの 64 バイト (220.181.57.216): icmp_seq=3 ttl=128 time=31.9 ms
220.181.57.216 からの 64 バイト (220.181.57.216): icmp_seq=4 ttl=128 time=30.9 ms
...

ここで、コンソールに出力し、出力されたコンテンツを別の目的のために別のファイルに保存します。その場合、 teeコマンドが役立ちます。

[mysql@localhost ~]$ ping baidu.com | tee ping-baidu.log #コンソールに出力しながら、内容をping-baidu.logファイルに保存します。 PING baidu.com (220.181.57.216) 56(84) バイトのデータ。
220.181.57.216 からの 64 バイト (220.181.57.216): icmp_seq=1 ttl=128 time=30.6 ms
220.181.57.216 からの 64 バイト (220.181.57.216): icmp_seq=2 ttl=128 time=30.5 ms
220.181.57.216 からの 64 バイト (220.181.57.216): icmp_seq=3 ttl=128 time=30.2 ms
^C[mysql@localhost ~]$ cat ping-baidu.log #ファイルの内容が出力と一致しているかどうかを確認します PING baidu.com (220.181.57.216) 56(84) バイトのデータ。
220.181.57.216 からの 64 バイト (220.181.57.216): icmp_seq=1 ttl=128 time=30.6 ms
220.181.57.216 からの 64 バイト (220.181.57.216): icmp_seq=2 ttl=128 time=30.5 ms
220.181.57.216 からの 64 バイト (220.181.57.216): icmp_seq=3 ttl=128 time=30.2 ms

シナリオ 2: ファイルにコンテンツを追加するにはどうすればよいでしょうか?

上記の操作では、ping-baidu.log に出力されます。このファイルが存在する場合は、まずファイル内のすべての内容をクリアしてから、内容を入力します。この方法は、一部のシナリオには適していません。各出力がファイルに追加されることを望みます。この場合、 -aパラメータを使用して指定できます。

ping baidu.com | tee -a ping-baidu.log 

ここに画像の説明を挿入

シナリオ 3: 複数のファイルに同時に出力するにはどうすればよいですか?

teeコマンドの後に入力するファイル名を追加するだけです。具体的な形式は次のとおりです。

ping baidu.com | tee ping.log ping-baidu.log 

ここに画像の説明を挿入

シナリオ 4: tee コマンドの出力を別のコマンドの入力ストリームとしてリダイレクトする方法

パイプライン方式に従うには、 teeコマンドの後に|と次のコマンドを追加するだけです。

ここに画像の説明を挿入

シナリオ 5: tee コマンドを使用してファイルへの書き込み権限レベルを上げる

実際に Linux サーバーを操作しているときに、特定のファイルを設定すると、設定が完了して保存したときに、現在のユーザーにはファイルを保存するためのファイルがないことがわかります。この時点で、非常にイライラします。何か解決策はありますか?このとき、 teeコマンドが私たちの悩みを解決してくれます。

具体的な操作は、ファイルを保存するときに:w !sudo tee %入力することです。このとき、 vi sudo 操作のパスワードを入力するように通知します。正しく入力すると、ファイルが保存されます。この時点で、安全にファイルを終了できます:q!

シナリオ 6: 割り込みイベントを無視する方法

-iパラメータは、割り込みイベント(SIGINT)を無視するteeを許可する。

baidu.com に ping する | tee -i ping.log

参照:

https://www.howtoforge.com/linux-tee-command/

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Puppeteer を使用して Linux (CentOS) で Web ページのスクリーンショット機能を実装する
  • Linuxは情報を出力し、ファイルに記録します(teeコマンド)

<<:  win10 での mysql 8.0.16 winx64 インストールの最新グラフィック チュートリアル

>>:  フロントエンドJSサンドボックスを実装するいくつかの方法についての簡単な説明

推薦する

JavaScript で最も高速なループはどれですか?

どの for ループまたは反復子がニーズに適しているかを知ることで、アプリケーションのパフォーマンス...

Web スライスとは何ですか?

IE8 の新機能 Web スライス (Web スライス) Microsoft は 3 月 20 日...

Vueは不規則なスクリーンショットを実装する

目次SVG による画像キャプチャCSS部分エフェクト画像表示ソースコードアドレスこれまで見てきたもの...

Jsonフォーマットの詳細な説明

目次JSON は次の 2 つの構造に基づいて構築されます。 2. JSON形式1. オブジェクト2....

複数のサーバーにNginxリバースプロキシを実装する方法

Nginx は複数のサーバーをリバース プロキシします。つまり、nginx に異なるリクエストを送信...

Docker コンテナ入門から夢中になるまで(推奨)

1. Docker とは何ですか?仮想マシンについては誰もが知っています。Windows に Li...

Linux 脆弱性スキャンツール lynis の使用分析

はじめに: Lynis は、徹底的なセキュリティ スキャンを実行できる Unix システム用のセキュ...

Linux calコマンドの使用

1. コマンドの紹介cal (カレンダー) コマンドは、現在の日付または指定された日付のグレゴリオ暦...

MySQL でテーブルデータをクリアする 2 つの方法とその違い

MySQL でデータを削除するには 2 つの方法があります。切り詰めは大まかな伐採の一種である削除は...

HTML ページでコンテンツの選択、コピー、右クリックを防止する方法の詳細な説明

時には、Web ページに掲載されているコンテンツが悪意のある人物に盗用されるのを望まないため、Web...

MySQL ページングパフォーマンスの調査

一般的なページング方法: 1. エスカレーター方式エスカレーター方式では通常、前のページ/次のページ...

Jenkins+tomcat の自動ホットデプロイメント/再起動と発生した問題の解決策 (推奨)

1. 背景同社のプロジェクトは、これまでは手動で Maven でパッケージ化し、サーバーにアップロ...

Dockerカスタムネットワークコンテナ相互接続

目次序文-リンクカスタムネットワーク質問する序文前回は、 -Linkパラメータを使用してコンテナ間の...

MySQL データ型の選択原則

目次小さいけれど美しいシンプルにNULL値を避けるデータタイプを選択する手順データ型の紹介1. 文字...

ウェブページサイズに関する調査

<br />統計によると、Web ページの平均サイズは 2003 年以降 3 倍に増加し...