カテゴリ: Linux 更新日: 2026/03/18

Linuxでエラー出力をリダイレクトする方法を徹底解説!初心者でも失敗しない基本操作

Linuxでエラー出力をリダイレクトする方法
Linuxでエラー出力をリダイレクトする方法

先生と生徒の会話形式で理解しよう

生徒

「コマンドを実行したときに画面に出てくるエラーメッセージを、後で確認するためにファイルに保存したいんです。どうすればいいですか?」

先生

「それは『リダイレクト』という機能を使うと解決できますよ。特にエラーだけを別にする方法は、Linux操作でとても重要です。」

生徒

「エラーだけを分けるなんて、なんだか難しそうですね。私のような初心者でも設定できますか?」

先生

「仕組みさえ分かれば意外とシンプルですよ。数字を使った指定方法など、基本からゆっくり解説していきますね。」

1. リダイレクトとエラー出力の基本を知ろう

1. リダイレクトとエラー出力の基本を知ろう
1. リダイレクトとエラー出力の基本を知ろう

Linux(リナックス)を使っていると、画面に文字がたくさん表示されます。通常、コマンドを実行した結果は「標準出力」と呼ばれ、エラーが発生したときのメッセージは「標準エラー出力」と呼ばれます。

リダイレクトとは、本来なら画面に表示されるはずのこれらの情報を、別の場所(主にテキストファイルなど)に流し込む操作のことです。「川の流れを土嚢でせき止めて、別の水路に流す」ようなイメージを持つと分かりやすいでしょう。

パソコンを触ったことがない方にとって、文字だけの画面でエラーが出るのは怖いかもしれませんが、そのエラーを保存して誰かに見せたり、自分で調べたりするために、このリダイレクトという技術は欠かせません。

2. 標準出力と標準エラー出力の違い

2. 標準出力と標準エラー出力の違い
2. 標準出力と標準エラー出力の違い

Linuxの中では、情報の出口に「背番号」のような数字が割り振られています。これをファイルディスクリプタと呼びますが、今は難しい名前は覚えなくて大丈夫です。以下の2つの数字だけを意識してください。

  • 1:標準出力(成功した時のメッセージ)
  • 2:標準エラー出力(失敗した時のメッセージ)

普段、私たちが > という記号を使って結果を保存するとき、実は省略されていますが「1番(成功メッセージ)」を保存しています。エラーメッセージである「2番」を保存したいときは、明示的に数字を指定してあげる必要があります。

3. エラー出力だけをファイルに保存する方法

3. エラー出力だけをファイルに保存する方法
3. エラー出力だけをファイルに保存する方法

エラーメッセージだけをファイルに保存するには、2> という記号を使います。数字の「2」の直後にスペースを入れずに「>」を書くのがポイントです。

例えば、存在しないファイルを表示しようとしてエラーを発生させ、その内容を error.txt というファイルに書き込んでみましょう。画面には何も表示されなくなりますが、ファイルの中にエラーが隠れています。


ls non-existent-file 2> error.txt
cat error.txt
ls: cannot access 'non-existent-file': No such file or directory

この例では、lsというファイル一覧を見るコマンドを使いました。存在しないファイルを探させたのでエラーが出ましたが、2> のおかげで画面ではなくファイルにその内容が保存されました。cat(キャット)コマンドは、ファイルの中身を表示するためのコマンドです。

4. 標準出力とエラー出力をまとめて保存する

4. 標準出力とエラー出力をまとめて保存する
4. 標準出力とエラー出力をまとめて保存する

「成功した結果も、エラーの結果も、全部まとめて一つのファイルに入れたい!」という場面もよくあります。ログ(記録)を取るときなどはこの方法が一般的です。

その場合は、&> という記号を使います。これを使うと、成功も失敗も区別せずにすべて指定したファイルへ流し込まれます。非常に便利なショートカットです。


ls . non-existent-file &> all_output.txt
cat all_output.txt
.:
Documents
Downloads
ls: cannot access 'non-existent-file': No such file or directory

ここでは、今いる場所( . )の表示と、存在しないファイルの表示を同時に行いました。成功したファイル一覧と、失敗したエラーメッセージの両方が一つのファイルに書き込まれているのが分かりますね。

5. 成功は画面に、エラーだけをゴミ箱へ捨てる方法

5. 成功は画面に、エラーだけをゴミ箱へ捨てる方法
5. 成功は画面に、エラーだけをゴミ箱へ捨てる方法

Linuxには、「何を入れても消えてしまう魔法のゴミ箱」のような場所があります。それが /dev/null(デバイス・ヌル)です。大量にエラーが出るコマンドを実行するとき、エラー画面が邪魔で見にくいことがあります。そんなときは、エラーだけをこのゴミ箱に捨ててしまいましょう。

以下のコマンドは、全ファイルを検索しようとしますが、権限がない場所でエラーが出ます。それを無視して、見つかったものだけを表示させる設定です。


find / -name "config" 2> /dev/null
/etc/selinux/config
/usr/src/linux-headers-5.4.0-42/include/config

もし 2> /dev/null を書かなかったら、画面は「許可がありません(Permission denied)」というエラーで埋め尽くされてしまいます。この手法は、実際のシステム管理の現場でも非常によく使われる「プロの技」です。

6. 既存のファイルにエラーを追記する方法

6. 既存のファイルにエラーを追記する方法
6. 既存のファイルにエラーを追記する方法

これまでに紹介した >2> は、実行するたびにファイルの中身を上書き(一度空にしてから書き込み)してしまいます。過去のエラー記録を残したまま、新しくエラーを追加したいときは、記号を二つ重ねて 2>> と書きます。

これを「追記型のリダイレクト」と呼びます。日記帳に毎日書き足していくようなイメージですね。システムをずっと動かしているときに、いつエラーが起きたかを記録し続けるのに適しています。


command-not-found 2>> error_log.txt
date >> error_log.txt
cat error_log.txt
-bash: command-not-found: command not found
Fri Jan 9 14:00:00 JST 2026

このように、エラーメッセージだけでなく、dateコマンドで現在時刻も追記しておくと、いつトラブルが起きたのかが後で分かりやすくなります。パソコン初心者の方も、まずはこの「追記」を覚えると安心です。

7. パイプとリダイレクトの組み合わせ

7. パイプとリダイレクトの組み合わせ
7. パイプとリダイレクトの組み合わせ

リダイレクトと似た機能に「パイプ( | )」があります。パイプは「コマンドの結果を次のコマンドに渡す」ための道具です。これをリダイレクトと組み合わせることで、より高度な操作ができます。

例えば、「エラーも含めたすべての出力の中から、特定のキーワード(正規表現)を含む行だけを探してファイルに保存する」といった使い方が可能です。少し複雑に見えますが、左から右へデータが流れていく様子を想像してみてください。


ls -R /etc 2>&1 | grep "network" > network_files.txt

ここで出てきた 2>&1 という書き方は、「2番(エラー)を1番(成功)と同じ場所に流してね」という意味です。これにより、エラーも成功もまとめて次の grep(検索コマンド)に渡され、最終的にファイルへ保存されます。これはLinuxの中級者への第一歩となる非常に重要なテクニックです。

8. 管理者権限(root)でのエラー処理

8. 管理者権限(root)でのエラー処理
8. 管理者権限(root)でのエラー処理

Linuxには、何でもできる最強のユーザー「root(ルート)」が存在します。システム全体の重要な設定ファイルを操作するときは、この権限が必要になります。ルートユーザーで作業しているときも、エラー出力の扱いは同じですが、より慎重に行う必要があります。

なぜなら、ルート権限でリダイレクトを間違えると、大事なシステムファイルを空っぽに上書きしてしまう危険があるからです。初心者のうちは、できるだけ一般ユーザーで練習し、慣れてからルートでの操作に挑戦しましょう。


cat /etc/shadow 2> root_error.txt
cat root_error.txt

もし権限が足りない場合に cat コマンドを使うと、上記のようにエラーが発生します。ルートユーザーであれば本来読めますが、設定ミスやファイル不在のエラーを確認するために、このようにリダイレクトを活用してログを残すことが推奨されます。

9. 正規表現と組み合わせてエラーを分析する

9. 正規表現と組み合わせてエラーを分析する
9. 正規表現と組み合わせてエラーを分析する

最後に応用編として、エラー出力されたファイルの中から「正規表現」を使って特定のパターンを見つける方法を紹介します。正規表現とは、文字のパターンを表現する特別な書き方のことです。

例えば、「error」という文字が含まれる行や、行の先頭が「critical」で始まる行だけを抽出することができます。大量のエラーログファイルから、本当に重要な情報だけを抜き出すときに、この組み合わせが力を発揮します。


grep -E "error|failed" error_log.txt
[2026-01-09] connection failed
[2026-01-09] disk write error

-E オプションを使うと、複数の単語を「または( | )」でつなぐことができます。このように、リダイレクトで保存したエラーファイルを後から分析するスキルを身につけると、トラブル解決のスピードが劇的に上がります。Linuxの世界では、エラーは敵ではなく、解決のヒントをくれる味方なのです。

カテゴリの一覧へ
新着記事
New1
AWS PrivateLink
AWS PrivateLinkとは?VPC間のセキュアな通信を実現する仕組み
New2
VPN(プライベートネットワーク)
AWS VPNのセキュリティ設定を徹底解説!認証方式と証明書の基本
New3
VPN(プライベートネットワーク)
AWS VPNのルートテーブル設定と通信確認を完全ガイド!初心者でもできる仮想プライベートネットワークの基本
New4
VPN(プライベートネットワーク)
AWS VPNとDirect Connectの違いを比較してみよう!初心者でも分かる接続方法の選び方
人気記事
No.1
Java&Spring記事人気No1
S3(オブジェクトストレージ)
AWS S3の料金体系をわかりやすく解説
No.2
Java&Spring記事人気No2
RDS(データベース)
AWS RDSのスナップショットを手動で作成・復元する方法を初心者向けにやさしく解説!
No.3
Java&Spring記事人気No3
AWS 基本
AWSの公式料金計算ツール(Pricing Calculator)の使い方
No.4
Java&Spring記事人気No4
S3(オブジェクトストレージ)
AWS S3のデータ保護(オブジェクトロック・WORM設定)を初心者向けにやさしく解説
No.5
Java&Spring記事人気No5
ELB(ロードバランサー)
AWS ELBでターゲットグループを設定する方法を初心者向けに解説!
No.6
Java&Spring記事人気No6
ファイル・ディレクトリ構造
Linuxの/homeディレクトリとは?役割と構造を初心者向けに徹底解説!
No.7
Java&Spring記事人気No7
AWS Shield
AWS Shieldの課金体系とコスト対策を徹底解説!初心者でもわかるDDoS対策の料金構造
No.8
Java&Spring記事人気No8
RDS(データベース)
AWS RDSのスケーリング(インスタンスサイズ変更)を初心者向けにやさしく解説!