リダイレクトとログの基本|初心者向けターミナル入門|UNIX Cafe

当サイトでは、コンテンツの一部に広告を掲載しています。
リダイレクトとログの基本|初心者向けターミナル入門

UNIX Cafe | 第9回

目次

はじめに|コマンドの出力を「記録」に残す理由

ミナちゃん

コマンドを実行すると文字は出るけれど、あとで見返せないんですよね。

ターミナルでコマンドやスクリプトを実行すると、画面にはたくさんの文字が流れていきます。

しかし、その多くは 実行が終わると消えてしまう情報 です。

  • 正常に動いたかどうか
  • どこでエラーが出たのか
  • いつ実行したのか

こうした情報を後から確認できるようにする仕組みが、リダイレクト(redirect) と ログ(log) です。

UNIX や Linux の世界では、「画面に出たものは、すべて記録できる」という考え方が基本にあります。

出力をファイルに保存する(>

echo "Welcome to UNIX Cafe" > log.txt

> は、標準出力(画面に表示される結果)をファイルに書き出す記号です。

  • 画面には表示されない
  • log.txt に内容が保存される
  • すでにファイルがある場合は 上書き

コマンドの結果を「その場限り」にせず、
作業の記録として残すための基本操作です。

追記して記録を重ねる(>>

date >> log.txt
echo "今日もいい一日でした" >> log.txt

>> は、既存のファイルに 追記 します。

  • 以前の内容は消えない
  • 実行するたびに記録が増える

定期処理や日次バッチなど、
履歴を残したい処理 では必須の書き方です。

エラーメッセージだけを記録する(2>

ls /no_such_file 2> error.txt

UNIX では出力が2種類に分かれています。

種類内容
標準出力(1)正常な結果
標準エラー(2)エラーメッセージ

2> を使うと、エラーだけを別ファイルに保存できます。

  • 正常ログとエラーログを分けたいとき
  • 原因調査をしやすくしたいとき

実務ではとても重要な使い方です。

ユニ先生

エラーを分けて残せると、原因をあとから落ち着いて確認できるよ。

出力とエラーをまとめて保存する(&>

./myscript.sh &> all_log.txt

&> は、

  • 標準出力
  • 標準エラー

を すべてまとめて1つのファイルに保存します。

スクリプトの挙動を丸ごと残したい場合に便利です。

画面にも表示しながら保存する(tee

echo "注文を受け付けました!" | tee order.log

tee は少し特別なコマンドです。

  • 画面にも表示する
  • 同時にファイルにも保存する

進行状況を確認しながら、ログも残したい場面でよく使われます。

実際にログを作ってみよう

ステップ1:1行目を書いてみる(上書き保存:>

echo "Good morning, UNIX Cafe!" > cafe.log

ここで起きていること:

  • echo は文字を出すコマンド
  • > は 画面に出す代わりにファイルへ書く
  • cafe.log が 新しく作られる(または上書きされる)

確認してみましょう

cat cafe.log

出力はこうなります(例):

Good morning, UNIX Cafe!

ステップ2:2行目を足してみる(追記:>>

echo "今日のおすすめ:ブルーマウンテン☕" >> cafe.log

ここで起きていること:

  • >> は 追記
  • さっきの内容を消さずに、下に追加される

もう一度確認

cat cafe.log

出力(例):

Good morning, UNIX Cafe!
今日のおすすめ:ブルーマウンテン☕

ステップ3:わざとエラーを出して、ログに入れる(エラー追記:2>>

ls /no_such_file 2>> cafe.log

ここが一番大事です。

  • ls /no_such_file は存在しない場所なので 必ずエラーになる
  • 2>> の「2」は 標準エラー の意味
  • >> なので 追記
  • 結果:エラーだけが cafe.log の最後に追加される

確認:

cat cafe.log

出力(例):

Good morning, UNIX Cafe!
今日のおすすめ:ブルーマウンテン☕
ls: /no_such_file: No such file or directory

ここまでで「何ができたか」

この3段階で、

  • 普通の出力(標準出力)をログに入れる
  • メモを追記する
  • エラー(標準エラー)も同じログに混ぜる

という 実務でよく使うログの基本形 が作れました。

ありがちなつまずき(超重要)

✅ 2>> のスペースに注意

これはOK:

ls /no_such_file 2>> cafe.log

これはダメになりやすい:

ls /no_such_file 2 >> cafe.log

2>> は「セットで1つの記号」なので、分けないのが安全です。

まとめ|リダイレクトは「作業の履歴」を残す技術

  • >:出力を上書き保存
  • >>:出力を追記
  • 2>:エラーだけ保存
  • &>:すべて保存
  • tee:画面とファイルの両方に出力

ログを残すことは、
失敗を防ぎ、次の作業を楽にしてくれます。

UNIX のシェルは、
「記録を大切にする」文化の上に成り立っています。

ミナちゃん

リダイレクトって、作業を“記録に残すための仕組み”なんですね。

さらに学びたいあなたへ

📘 用途ごとに選ぶ Linux のおすすめ本

あわせて読みたい
レベル・用途別おすすめ Linux 本リスト|UNIX Cafe UNIX Cafe | 第65回 Linux の世界には、「はじめて触る人」「コマンドを覚えはじめた人」「サーバーに挑戦したい人」と、さまざまな段階があります。そんなときに、自分...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe 編集部

UNIX Cafe は、むずかしい言葉をできるだけ使わず、物語を読むような気持ちで気軽に学べる場所です。
プログラミングは、アイデアをコンピューターに伝えるための「ことば」。
簡単な単語と文法を覚えることで、誰でもターミナルから便利なコマンドを使えるようになります。
コーヒーを片手に立ち寄るような気持ちで、やさしいプログラミングの世界を、
そっとのぞいてみてください。

目次