重要なポイント
- Linux の「tee」コマンドは、コマンドの出力をファイルに保存すると同時に、ターミナルに表示します。
- また、出力を複数のファイルに同時に書き込むことができるため、システム ログのバックアップと追跡が簡単に行えます。
- 「tee」コマンドは、パイプを介して他のコマンドと一緒に使用することもできます。これにより、出力をファイルに保存しながらさらに処理することができます。たとえば、「ls ~ | tee list.txt」というコマンドで「ls」と一緒に使用できます。
tee
コマンドは、後で確認できるようにコマンドの出力を保存できます。このコマンドは、出力を画面に表示するだけでなく、
別のログ ファイル
に記録します。ディスク領域の使用状況を長期的に追跡できるように、
df
コマンド
の出力をファイルに保存したいとします。このコマンドはプロセスの記録を記録するため、プロセスのトラブルシューティングに役立ちます。
Linux の tee コマンドとは何ですか?
Linux
tee
コマンドは、Linux での時間を節約し、効率を向上させるための便利なツールです。
標準入力 (
stdin
)
を読み取り、
標準出力 (
stdout
)
と指定したファイルの両方に書き込むことができます。
tee
コマンドは、水を 2 方向に分割する T 字型のパイプのように機能します。プログラムの出力を表示し、それを同時にファイルに保存できます。
tee
コマンドは両方のことを同時に実行します。選択したファイルまたは変数に出力をコピーして表示できます。このコマンドは、出力を別の場所に送信するために
シェル スクリプト
や端末コマンドでも使用されます。
tee
コマンドを使用すると、
バックアップの作成
、スクリプト内のエラーの検索、システム ログの追跡を行うことができます。
tee
コマンドを使用
すると、他のコマンドとパイプする
こともできます。このようにして、出力をファイルに保存し、他のコマンドでさらに処理することもできます。
ほとんどすべての Linux ディストリビューションには、Coreutils パッケージの一部である
tee
コマンドがプリインストールされています。
tee
コマンドは、他の Linux コマンドと同様の構文に従います。これには、–OPTIONS と FILES という 2 つの引数があります。
[オプション]...[ファイル]...
使用している
tee
コマンドのバージョンを確認するには、次のコマンドを実行します。
ティー --バージョン
tee
コマンドの構文と使用可能な引数についてヘルプが必要な場合は、次のように入力します。
ティー --ヘルプ
tee コマンドのオプション
tee
コマンドには、その機能を変更するためのいくつかのオプションがあります。以下の表は、
tee
コマンドを効率的に使用するのに役立ついくつかのオプションを示しています。
|
オプション |
説明 |
|---|---|
|
|
出力を上書きするのではなく、ファイルの末尾に追加します。 |
|
|
Ctrl+C などの割り込み信号を無視します。 |
|
|
ファイルへの書き込み時に発生する各エラーについて、標準エラーにエラー メッセージを出力します。 |
|
|
コマンドオプションに関する基本的なヘルプを表示します。 |
|
|
|
tee を使用して Linux で出力をファイルに保存する
tee
コマンドは、コマンドの出力をファイルに保存すると同時に、端末に表示します。たとえば、
tee
コマンドを使用すると、
ホーム ディレクトリ内のファイルとディレクトリ
を表示したり、それらを別のファイルに保存したりできます。これを行うには、次のように
tee
コマンドを
ls
コマンド
にパイプします。
〜 |ティーリスト.txt
これにより、ホーム ディレクトリ内のすべてのファイルとディレクトリが表示され、「list.txt」に書き込まれます。 「list.txt」の内容を表示するには、任意のテキスト エディターまたは
cat
、
less
、または
more
コマンドなどのコマンドを使用します。
猫リスト.txt
echo
コマンド
を使用して別の例を実行し、出力を保存して表示してみましょう。まず、
echo
コマンドを使用して端末上にテキストを出力します。その後、
tee
コマンドを
echo
コマンドにパイプして、同じテキストを「output.txt」というファイルに書き込みます。
echo "Ubuntu へようこそ" |ティー出力.txt
最後に、
cat
コマンド
を使用して、「output.txt」ファイルの内容を確認します。
猫の出力.txt
tee を使用して Linux で出力を複数のファイルに書き込む
tee
コマンドは、出力を複数のファイルに同時に書き込むこともできます。書き込み先の
tee
コマンドの後にファイル名を定義するだけです。単純にスペースで区切ってください。
たとえば、
echo
コマンドの出力を 3 つの異なるファイルに保存するには、次の構文を使用します。
echo "Ubuntu へようこそ" |ティー ファイル1.txt ファイル2.txt ファイル3.txt
これにより、文字列「Welcome to Ubuntu」が 3 つのファイル (file1.txt、file2.txt、file3.txt) に書き込まれます。端末にも表示されます。これらのファイルの内容を表示するには、
cat
または
head
コマンドを使用します。
head -v file1.txt file2.txt file3.txt
同様に、
cat
コマンドも同じ出力を表示します。
cat -v ファイル1.txt ファイル2.txt ファイル3.txt
tee
コマンドを使用すると、出力を任意の数のファイルに書き込むことができます。
tee
コマンドの後にスペースを入れてファイル名を入力するだけです。
「 Linux で tee コマンドを使用する方法」に関するベスト動画選定!
tee を使用して出力をファイルに追加する
Linux の
tee
コマンドは、デフォルトでファイルの内容を上書きします。
tee
コマンドで
-a
または
--append
オプションを使用すると、ファイルの内容を置き換えるのではなく、出力をファイルの末尾に追加できます。
ファイルにデータを追加する前に、以下のコマンドを使用して、ファイルに配置されている現在のデータを確認してみましょう。
猫の出力.txt
これで、次のように入力して、新しいデータを上書きせずに追加できます。
echo "Linux 上の tee コマンド" | tee -a 出力.txt
これにより、コマンドの出力が、その中の以前の内容を削除せずに、output.txt の末尾に追加されます。確認するには、
cat
コマンドを実行します。
猫の出力.txt
t 字型を使用して出力を非表示にする
場合によっては、コマンドの出力を端末に表示せずにファイルに保存したい場合があります。これは、不要な出力で端末を混乱させることなく、コマンドをサイレントに実行したい場合に便利です。このような場合は、コマンド出力を
/dev/null
デバイスに送信する必要があります。
/dev/null
は、「ヌル デバイス」または「ヌル ファイル」と呼ばれることがよくあります。これはデータ シンクとして機能します。つまり、書き込まれたデータは破棄され、実際にはどこにも保存されません。
echo
コマンドの出力を非表示にする方法は次のとおりです。
echo "Ubuntu へようこそ" |ティー出力.txt > /dev/null
これにより、コマンドの出力が Output.txt に書き込まれ、
/dev/null
にも送信され、事実上画面から非表示になります。ただし、
cat
コマンドを使用すると、ファイルの内容を表示して出力を確認できます。
猫の出力.txt
tee を使用して、あるコマンドの出力を別のコマンドにリダイレクトする
tee
コマンドは、1 つのコマンドの出力をファイルまたは他のコマンドにリダイレクトすることもできます。パイプ (|) を使用した
tee
コマンドを使用すると、最初のコマンドの出力を標準出力と 2 番目のコマンドまたはファイルの両方に送信できます。次の例を考えてみましょう。
echo "これは Ubuntu です" |ティー出力.txt |トイレ -c
echo
コマンドの出力「Welcome to Ubuntu」は、output.txt ファイルに書き込まれます。その後、パイプライン演算子は
tee
コマンドで使用されます。これにより、ファイルの内容が
wc
コマンド
に渡されます。
wc
コマンドは、カウントされた合計文字数を出力し、整数値を表示します。
tee
コマンドによって出力もファイルに書き込まれたかどうかを確認するには、
cat
コマンドを使用してファイルの内容を表示します。
猫の出力.txt
sudo での tee コマンドの使用
tee
コマンドを使用すると、コマンドの出力が通常のファイルに書き込まれます。ただし、システム ディレクトリや保護されたファイルなど、一部のファイルとディレクトリを変更するにはスーパーユーザー権限が必要です。これらのファイル、または他のユーザーが所有するファイルに書き込むには、
tee
sudo
と組み合わせて使用します。
以下の例では、
sudo
使用せずに root が所有する「file.conf」ファイルを書き込もうとすると、アクセス許可拒否エラーが発生します。
echo "これは Ubuntu です" | tee -a /etc/file.conf
ただし、
sudo
tee
コマンドとともに使用すると、エラーなしで実行されます。
sudo
コマンドを使用すると、root ユーザーまたはファイルの所有者として
tee
コマンドを実行できます。
sudo
の前に
tee
コマンドを追加するだけです。
echo "これは Ubuntu です" | sudo tee -a /etc/file.conf
まず、
tee
コマンドは
echo
コマンドの出力を取得します。その後、
sudo
権限に昇格し、テキストをファイルに書き込みます。
Bash スクリプトでの tee の使用例
tee
コマンドは、さまざまなスクリプト シナリオで役立ちます。これは、さらなる処理やデバッグのためにコマンドの出力をログに記録したりキャプチャしたりするのに役立ちます。
tee
コマンドは出力を表示するだけでなく、後で使用できるように出力をファイルに保存します。
たとえば、ターミナルで日付と時刻を確認し、それを log.txt という名前のファイルに書き込む場合は、次の bash スクリプト を使用します。
#!/bin/bash
date | tee log.txt
この場合、標準入力は date コマンドの出力であり、現在の日付と時刻が表示されます。
tee
コマンドは、この出力を端末とファイル log.txt に書き込みます。ファイル log.txt が存在しない場合は、作成されます。存在する場合、
-a
オプションを使用してファイルに追加しない限り、上書きされます。
猫のログ.txt
tee
コマンドを使用して、引数としてさらにファイル名を指定することで、複数のファイルに書き込むこともできます。
#!/bin/bash
date | tee log1.txt log2.txt
このスクリプトは、日付と時刻を端末と、log1.txt および log2.txt という名前の 2 つのファイルに出力します。
cat
コマンドを使用して両方のファイルの内容を読み取ります。
猫 log1.txt log2.txt
tee
コマンドを使用して、入力を受け取り、それをログ ファイル内に保存する別の単純な bash スクリプトを考えてみましょう。
#!/bin/bash
log_file= "user_input.log"
echo "Please enter some text:"
read user_input
echo " $user_input " | tee -a " $log_file "
echo "User input has been logged to $log_file "
指定された bash スクリプトで、「log_file」という変数を定義し、それに「user_input.log」など、使用するログ ファイルの名前を割り当てます。次に、
echo
コマンドと
read
コマンドを使用して、テキストを入力して変数に保存するように求めます。次に、
-a
オプションを指定して
tee
コマンドを使用して、端末に Enter 入力を表示し、それをログ ファイルに追加します。
最後に、
echo
コマンドを再度使用してフィードバックを提供します。これにより、入力がファイルに記録されたことがわかります。このようにして、入力をログ ファイルに保存し、画面に表示する bash スクリプトを作成できます。
bash
コマンドを使用して bash スクリプトを実行します。
bash テスト.sh
Linux システム上のプロセスの監視
Linux システムがどの程度適切に実行されているかを監視するには、そのプロセスのアクティビティを観察する必要があります。これには、CPU とメモリの使用量、ディスク I/O、ネットワーク アクティビティが含まれます。パフォーマンスのボトルネックを特定すると、システム リソースが最適化され、システムが効率的に動作するようになります。
tee
コマンドと同様に、Linux にはプロセスを簡単に監視するのに役立つ
コマンドが他にも複数
あります。主なコマンドには、
ps
、
top
、
pgrep
コマンドなどがあります。 Linux システムは多くの場合、複数のプロセスを同時に実行します。これらのコマンドを使用すると、重要なタスクに優先順位を付け、リソースを適切に割り当て、リソースの競合を防ぐことができます。





