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

Linuxteeコマンドの使用方法

はじめに

ユーザーがLinux対話型シェルでコマンドを実行すると、出力がテキスト端末に表示されます。ただし、パイプラインに接続された追加のシェルコマンドを使用して、この動作を変更する方法があります。

このチュートリアルでは、Linuxでteeコマンドを使用してコマンドの出力を管理する方法を学習します。

前提条件

  • Linuxを実行しているシステム
  • コマンドラインまたはターミナルへのアクセス
  • sudo特権

Linuxでteeコマンドは何をしますか?

ティー コマンドは、標準入力(stdin)を読み取り、それを標準出力(stdout)と1つ以上のファイルの両方に書き込みます。 ティー 通常はパイプラインの一部であり、任意の数のコマンドをその前後に配置できます。

Linuxでのteeコマンドと例

ティー コマンドは、単独で、または追加のオプションとともに使用されます。次のセクションでは、使用可能なオプションをリストし、コマンドの使用例を示します。

基本的な使用法

teeの基本的な構文 コマンドは次のとおりです:

[command] | tee [options] [filename]

以下の例は、 teeの使用法を示しています ターミナルで同じ出力を提供しながら、ネットワークインターフェイスに関する情報を格納するファイルを作成するには:

catコマンドは、 teeであることを確認します ifconfigの出力を正常に書き込みました ファイルexample.txt

コマンドに使用するファイルがすでに存在する場合は、 tee ファイルの以前の内容を上書きします。

指定されたファイルに追加

ファイルのコンテンツの上書きは、 teeのデフォルトの動作です。 指図。引数-aを使用します (または-追加 )コマンド出力をファイルの最後に追加します。

[command] | tee -a [filename]

たとえば、 echoを使用します ファイルに1行のテキストを追加するコマンド:


catで追加が成功したことを確認します コマンド:

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

teeを使用する その後に、同じ出力をそれぞれに書き込むための任意の数のファイルが続きます:

[command] | tee [options] [filename1] [filename2]...

次の例は、 echoの出力の書き込みを示しています。 2つのファイルへのコマンド:

ls コマンドは、 teeであることを示しています 正常に作成されたファイルexample1.txt およびexample2.txt

出力を非表示にする

teeに伝えるには コマンド出力をファイルに保存し、ターミナル出力をスキップするには、次の構文を使用します。

[command] | tee [options] [filename] >/dev/null

次の例では、 tee 標準出力をスキップして、ネットワークインターフェイスデータを含むファイルを作成します:

あるコマンドの出力を別のコマンドにリダイレクトする

ティー パイプラインの最後のコマンドである必要はありません。これを使用して、出力を別のコマンドに転送します:

[command] | tee [options] [filename] | [command]

次の例では、 tee lsの出力を保存します example.txtへのコマンド そして、そのファイルの内容をgrepコマンドに渡します。このコマンドは、「example」という単語のすべてのインスタンスを検索して表示します。

割り込みを無視する

teeを有効にするには 前のコマンドが中断された後でも正しく終了するには、引数 -iを追加します (または -ignore-interrupts ):

[command] | tee -i [filename]

次の例は、 teeを示しています pingコマンドからの出力を書き込み、 pingの後でもアクションを正常に完了します Ctrl + Cで中断されます

Sudoでティーを使用する

teeを有効にするには ルート所有のファイルまたは別のユーザーに属するファイルに書き込むには、 teeの直前にsudoコマンドを配置します。

[command] | sudo tee [options] [filename]

以下の例は、ルート所有の sudoex.txtへの書き込みが失敗したことを示しています。 sudo コマンドが追加されると、操作が完了します:

Vimエディターでのteeの使用

sudoを使用せずにVimでルート所有のファイルを開いて編集した場合 コマンド、変更を保存しようとするとエラーが発生します:

このエラーを無効にするには、Vimに次のように入力します:

:w !sudo tee %

sudoを入力した後 パスワード、Vimは警告を表示しますが、変更をファイルに書き込みます。

非パイプへの書き込みエラーの診断

teeに指示するには プロセスが失敗したときにエラーメッセージを出力するには、 -pを使用します 引数:

[command] | tee -p [filename]

tee -pのデフォルトのアクション パイプへの書き込みエラーを検出するとすぐに終了してエラーメッセージを出力します。書き込みエラー時のコマンドの動作を変更するには、 -output-errorを使用します 引数の後に、動作を指定するモードが続きます:

[command] | tee --output-error=[mode] [filename]

4つの可能なモードがあります:

  • 警告 –出力への書き込みエラーを診断します。
  • warn-nopipe –パイプ以外の出力への書き込みエラーを診断します。
  • 終了 –出力への書き込みエラーで終了します。
  • exit-nopipe –パイプ以外の出力への書き込みエラーで終了します。

Bashスクリプトでteeコマンドを使用する

ティー コマンドはbashスクリプトによく見られます。次の例を考えてみましょう:

上記のスクリプトは、「Hello World」メッセージを出力し、出力をログファイルに保存します。スクリプトを実行すると、 tmpにログファイルが作成されます フォルダ。ログには、スクリプトの出力が含まれています:

ログファイルを見る

ログファイルへのスクリプト出力の書き込みは、通常、 >を使用して実行されます。 演算子:

./testbash.sh > testbash.log

上記のコマンドはログファイルを作成しますが、標準出力には何も書き込みません。

teeを使用する ログファイルを作成し、ターミナルで出力を確認するには:

./testbash.sh | tee testbash.log

ヘルプとバージョン情報を参照

teeの現在のバージョンを確認する 次のように入力してコマンドを実行します:

tee --version

teeに関する手順について コマンド構文と使用可能な引数については、コマンドのヘルプ引数を使用してください:

tee --help

Linux
  1. Linuxgrepコマンドの使用方法

  2. Linuxでhistoryコマンドを使用する方法

  3. LinuxでSuコマンドを使用する方法

  1. Linuxでsudoコマンドを使用する方法

  2. Linuxでidコマンドを使用する方法

  3. Linux で「screen」コマンドを使用する方法

  1. Linuxをコマンドで使用する方法

  2. Linuxでlocateコマンドを使用する方法

  3. Linuxの履歴コマンドの使用方法