モジュールのレッスン (1/2)
出力とリダイレクト (echo、cat、>)
Linux では、ほとんどすべてのコマンドが入力ストリームからデータを読み取り、結果を出力ストリームに書き込みます。これらのチャネルは標準ストリームと呼ばれます。
- 標準入力 (stdin): コマンドが入力を読み取るストリーム (デフォルトはキーボード)。
- 標準出力 (stdout): コマンドが成功した出力を書き込むストリーム (デフォルトは端末画面)。
- 標準エラー (stderr): コマンドがエラー メッセージを書き込むストリーム (デフォルトは画面)。
コマンド ラインを使用すると、これらのストリームをリダイレクトして、結果をファイルに直接保存できます。
テキストの印刷: echo
echo コマンドは、引数を標準出力 (画面) に書き込むだけです。
echo "Hello everyone"出力のリダイレクト (上書き): >
コマンドの出力を画面に表示するのではなくファイルに保存したい場合は、大なりリダイレクト演算子 > を使用できます。
echo "Hello everyone" > greetings.txtこのコマンドは echo を実行し、その出力をファイル greetings.txt にリダイレクトします。
[!重要] ファイル
greetings.txtが存在しない場合は、作成されます。すでに存在する場合、その既存のコンテンツは完全に削除され、新しい出力で上書きされます。
ファイルの内容を読み取り中: cat
1 つ以上のテキスト ファイルの内容をオンザフライで表示するには、cat コマンド (concatenate の略) を使用します。
cat greetings.txt出力の追加: >>
既存のファイルを上書きするのではなく、末尾に新しい行を追加する場合は、追加演算子 >> を使用する必要があります。
echo "New line of text" >> greetings.txtこれで、cat greetings.txt を使用してファイルを読み取ると、最初の行と 2 行目の両方が表示されます。
使用例とよくあるエラー
複数のファイルを同時に cat に渡して、それらを順番に (連結して) 表示できます。
cat notes.txt info.txt
# Output:
# Keep learning Linux!
# Linux is awesome.> 演算子を使用して、結合された出力を 3 番目のファイルにリダイレクトできます。
cat notes.txt info.txt > combined.txt存在しないファイルを読み取ろうとすると、cat はエラー メッセージを書き込みます。
cat nonexistent_file.txt
# Output:
# cat: nonexistent_file.txt: No such file or directory自分で試してみてください
演習 1: 挨拶を含むファイルを作成する
echo と > 演算子を使用して、テキスト「Hello World」を正確に含む「hello.txt」という名前のファイルを作成します。
ヒントを表示
echo の後に引用符で囲んだ文字列、> 演算子、および hello.txt を使用します。
3 回の試行後に解決策が利用可能になります
演習 2: ファイルにメモを追加する
現在の内容を削除せずに、既存の「notes.txt」ファイルの末尾に「Linux は楽しい」という行を追加します。
ヒントを表示
>> 演算子を使用して、notes.txt ファイルにテキストを追加します。
3 回の試行後に解決策が利用可能になります
演習 3: ファイルを連結する
ファイル「notes.txt」と「info.txt」の内容を連結し、結合された出力を「combined.txt」という名前の新しいファイルに保存します。
ヒントを表示
cat の後に 2 つのソース ファイルの名前を指定し、> を使用して出力を宛先ファイルにリダイレクトします。
3 回の試行後に解決策が利用可能になります