0Pricing
Linux Command Line Mastery · レッスン

標準ストリームとリダイレクト

stdin、stdout、stderrと、`|`、`>`、`>>`、`<`を使ったリダイレクト方法を学びます。

「標準ストリームとリダイレクト」はCoddyKit上の無料Linux Command Line Masteryレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Command Line Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Command Line Masteryコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

What are Standard Streams?

In the Linux terminal, commands communicate using 'standard streams'. Think of these as default channels for data to flow in and out of a program.

  • Standard Input (stdin): Where a command gets its input from (usually keyboard).
  • Standard Output (stdout): Where a command sends its normal results (usually screen).
  • Standard Error (stderr): Where a command sends its error messages (usually screen).

These streams let you control how commands interact!

Standard Output (`stdout`)

When a command successfully runs and produces a result, that result is sent to standard output. By default, stdout is displayed directly on your terminal screen.

For example, when you use the echo command, its output goes to stdout.

Redirecting `stdout` (Overwrite)

The > (greater than) symbol is used to redirect standard output from the screen to a file. If the file doesn't exist, it's created. If it already exists, its content is overwritten!

This is useful for saving command results for later.

Overwrite `stdout` Example

Try running this example. Notice how the echo command's output isn't shown on screen, but stored in message.txt. Then, cat displays the file's content.

echo "Hello CoddyKit!" > message.txt
cat message.txt

Redirecting `stdout` (Append)

What if you want to add output to a file without deleting its existing content? That's where >> comes in!

The >> (double greater than) operator redirects standard output to a file, appending the new content to the end of the file.

Append `stdout` Example

Let's add another line to our message.txt file without losing the first line. Run the code and observe the output of the final cat command.

echo "Hello CoddyKit!" > message.txt
echo "Welcome to Linux!" >> message.txt
cat message.txt

Standard Input (`stdin`)

Standard input is the channel through which a command receives data. By default, stdin comes from your keyboard – you type commands or input values directly.

Some commands are designed to process input that you provide, or that comes from another source.

Input Redirection with `<`

The < (less than) symbol allows you to redirect standard input from a file instead of the keyboard. This is incredibly useful for feeding data from a file into a command that expects input.

The command will then process the file's content as if you typed it.

Input from File Example

The wc -l command counts lines. Here, we'll create a file and then use < to make wc -l read its input directly from that file.

echo "Line 1" > mydata.txt
echo "Line 2" >> mydata.txt
wc -l < mydata.txt

Standard Error (`stderr`)

When a command encounters a problem or an error, it sends diagnostic messages to standard error. Like stdout, stderr is typically displayed on your screen by default.

Keeping stderr separate from stdout helps you easily spot errors.

Redirecting `stderr` with `2>`

To redirect standard error to a file, you use the file descriptor 2 followed by the redirection operator: 2>.

This lets you capture error messages in a log file, keeping your main output clean. You can also redirect stdout and stderr to the same file using &> or > file 2>&1.

Error Redirection Example

Let's try to list a directory that doesn't exist. We'll redirect the error message to a file named errors.log.

ls non_existent_dir 2> errors.log
cat errors.log

Chaining Commands with Pipes (`|`)

The | (pipe) symbol is one of the most powerful features of the Linux shell. It connects the standard output (stdout) of one command directly to the standard input (stdin) of another command.

This allows you to create complex data processing pipelines by chaining simple commands together.

Pipe Example: `ls` to `wc`

Here, the output of ls -l (a detailed list of files) is 'piped' as input to wc -l (word count - lines). This effectively counts how many items are listed by ls -l.

ls -l | wc -l

Quick Check

Consider the following sequence of commands:

echo "Apple" > fruits.txt
echo "Banana" >> fruits.txt
echo "Cherry" > fruits.txt
cat fruits.txt

What will be the final content of fruits.txt displayed by the cat command?

Recap: Streams & Redirection

Great job! You've learned the fundamentals of standard streams and how to redirect them:

  • Standard Streams: stdin (input), stdout (normal output), stderr (error output).
  • >: Redirects stdout to a file, overwriting it.
  • >>: Redirects stdout to a file, appending to it.
  • <: Redirects a file's content to a command's stdin.
  • 2>: Redirects stderr to a file.
  • | (Pipe): Connects the stdout of one command to the stdin of another.

These techniques are essential for powerful command-line workflows. Next, you'll learn how to filter text using the mighty grep command!

よくある質問

「標準ストリームとリダイレクト」レッスンは無料ですか?

はい。「標準ストリームとリダイレクト」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Command Line Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Command Line Masteryコースには全4レッスンが含まれています。

「標準ストリームとリダイレクト」で何を学びますか?

stdin、stdout、stderrと、`|`、`>`、`>>`、`<`を使ったリダイレクト方法を学びます。 ブラウザで直接実行するハンズオンコードでLinux Command Line Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Linux Command Line Masteryを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLinux Command Line Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「標準ストリームとリダイレクト」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLinux Command Line Masteryレッスンでコードを書いて実行できますか?

はい。すべてのLinux Command Line Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 標準ストリームとリダイレクト
  2. `grep`によるテキストの絞り込み
  3. `sed`と`awk`によるテキスト操作
  4. sort、uniq、cut で出力を結合・並べ替える
← Linux Command Line Masteryに戻る