
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.txtUNIX では出力が2種類に分かれています。
| 種類 | 内容 |
|---|---|
| 標準出力(1) | 正常な結果 |
| 標準エラー(2) | エラーメッセージ |
2> を使うと、エラーだけを別ファイルに保存できます。
- 正常ログとエラーログを分けたいとき
- 原因調査をしやすくしたいとき
実務ではとても重要な使い方です。



エラーを分けて残せると、原因をあとから落ち着いて確認できるよ。
出力とエラーをまとめて保存する(&>)
./myscript.sh &> all_log.txt&> は、
- 標準出力
- 標準エラー
を すべてまとめて1つのファイルに保存します。
スクリプトの挙動を丸ごと残したい場合に便利です。
画面にも表示しながら保存する(tee)
echo "注文を受け付けました!" | tee order.logtee は少し特別なコマンドです。
- 画面にも表示する
- 同時にファイルにも保存する
進行状況を確認しながら、ログも残したい場面でよく使われます。
実際にログを作ってみよう
ステップ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.log2>> は「セットで1つの記号」なので、分けないのが安全です。
まとめ|リダイレクトは「作業の履歴」を残す技術
>:出力を上書き保存>>:出力を追記2>:エラーだけ保存&>:すべて保存tee:画面とファイルの両方に出力
ログを残すことは、
失敗を防ぎ、次の作業を楽にしてくれます。
UNIX のシェルは、
「記録を大切にする」文化の上に成り立っています。



リダイレクトって、作業を“記録に残すための仕組み”なんですね。
さらに学びたいあなたへ
📘 用途ごとに選ぶ Linux のおすすめ本









