メインコンテンツにスキップ
モジュール 3 · レッスン 1 / 2コース内の 6/11~15 min
モジュールのレッスン (1/2)

出力とリダイレクト (echo、cat、>)

Linux では、ほとんどすべてのコマンドが入力ストリームからデータを読み取り、結果を出力ストリームに書き込みます。これらのチャネルは標準ストリームと呼ばれます。

  • 標準入力 (stdin): コマンドが入力を読み取るストリーム (デフォルトはキーボード)。
  • 標準出力 (stdout): コマンドが成功した出力を書き込むストリーム (デフォルトは端末画面)。
  • 標準エラー (stderr): コマンドがエラー メッセージを書き込むストリーム (デフォルトは画面)。

コマンド ラインを使用すると、これらのストリームをリダイレクトして、結果をファイルに直接保存できます。


テキストの印刷: echo

echo コマンドは、引数を標準出力 (画面) に書き込むだけです。

Bash
echo "Hello everyone"

出力のリダイレクト (上書き): >

コマンドの出力を画面に表示するのではなくファイルに保存したい場合は、大なりリダイレクト演算子 > を使用できます。

Bash
echo "Hello everyone" > greetings.txt

このコマンドは echo を実行し、その出力をファイル greetings.txt にリダイレクトします。

[!重要] ファイル greetings.txt が存在しない場合は、作成されます。すでに存在する場合、その既存のコンテンツは完全に削除され、新しい出力で上書きされます。


ファイルの内容を読み取り中: cat

1 つ以上のテキスト ファイルの内容をオンザフライで表示するには、cat コマンド (concatenate の略) を使用します。

Bash
cat greetings.txt

出力の追加: >>

既存のファイルを上書きするのではなく、末尾に新しい行を追加する場合は、追加演算子 >> を使用する必要があります。

Bash
echo "New line of text" >> greetings.txt

これで、cat greetings.txt を使用してファイルを読み取ると、最初の行と 2 行目の両方が表示されます。


使用例とよくあるエラー

複数のファイルを同時に cat に渡して、それらを順番に (連結して) 表示できます。

Bash
cat notes.txt info.txt
# Output:
# Keep learning Linux!
# Linux is awesome.

> 演算子を使用して、結合された出力を 3 番目のファイルにリダイレクトできます。

Bash
cat notes.txt info.txt > combined.txt

存在しないファイルを読み取ろうとすると、cat はエラー メッセージを書き込みます。

Bash
cat nonexistent_file.txt
# Output:
# cat: nonexistent_file.txt: No such file or directory

自分で試してみてください

演習 1: 挨拶を含むファイルを作成する

運動#linux.m3.l1.e1
試行回数: 0読み込み中…

echo と > 演算子を使用して、テキスト「Hello World」を正確に含む「hello.txt」という名前のファイルを作成します。

エディターを読み込み中…
ヒントを表示

echo の後に引用符で囲んだ文字列、> 演算子、および hello.txt を使用します。

3 回の試行後に解決策が利用可能になります

演習 2: ファイルにメモを追加する

運動#linux.m3.l1.e2
試行回数: 0読み込み中…

現在の内容を削除せずに、既存の「notes.txt」ファイルの末尾に「Linux は楽しい」という行を追加します。

エディターを読み込み中…
ヒントを表示

>> 演算子を使用して、notes.txt ファイルにテキストを追加します。

3 回の試行後に解決策が利用可能になります

演習 3: ファイルを連結する

運動#linux.m3.l1.e3
試行回数: 0読み込み中…

ファイル「notes.txt」と「info.txt」の内容を連結し、結合された出力を「combined.txt」という名前の新しいファイルに保存します。

エディターを読み込み中…
ヒントを表示

cat の後に 2 つのソース ファイルの名前を指定し、> を使用して出力を宛先ファイルにリダイレクトします。

3 回の試行後に解決策が利用可能になります