このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linuxコマンド演習25
以下のコマンドの演習を行います。
実際にコマンド操作を行いながら、Linuxの操作に慣れていきましょう。
演習01:標準出力をファイルへリダイレクトする。
Linuxの標準出力は、端末画面になっています。その標準出力の内容をファイルに切り替えることができます。
・date コマンドを実行します。
$ date
2024年 1月 24日 水曜日 01:14:39 JST
コマンドのデフォルトの出力先が、端末画面になっているため、date コマンドの出力が端末画面に表示されます。
date コマンドの出力コマンドをファイルにリダイレクトします。
【書式】リダイレクトコマンド > ファイル名
・「date > today」を実行します。
今度は、端末画面にコマンドの出力結果が表示されません。cat コマンドで出力先の「today」ファイルを確認します。
$ date > today
$ cat today
2024年 1月 24日 水曜日 01:21:44 JST
「today」ファイルに出力されていることが確認できます。
・再度、「date > today」を実行して、「today」ファイルの内容を確認します。
$ date > today
$ cat today
2024年 1月 24日 水曜日 01:33:52 JST
日時が新しい内容に書き換わりました。このように「>」を使ったリダイレクトは、ファイルの内容を上書きします。
演習02:追記リダイレクトする。
ファイルの上書きではなく、末尾に追記するには「>>」でリダイレクトします。
・「date >> today」を実行して、「today」ファイルの内容を確認します。
$ date >> today
$ cat today
2024年 1月 24日 水曜日 01:33:52 JST
2024年 1月 24日 水曜日 01:42:40 JST
末尾に追記されていることが確認できます。
演習03:標準エラー出力をリダイレクトする。
エラーメッセージは、標準出力ではなく、標準エラー出力に出力されます。デフォルトの標準のエラー出力は、端末画面です。
・「ls -l today yesterday」コマンドを実行します。「yesterday」というファイルはありません。
$ ls -l today yesterday
ls: yesterday にアクセスできません: そのようなファイルやディレクトリはありません
-rw-rw-r--. 1 user01 user01 86 1月 24 01:42 today
「today」ファイルはありますが、「yesterday」ファイルがないため、エラーとなっています。実行結果の1行目が標準エラーの出力に、2行目が標準出力となります。
エラーメッセージの出力を標準出力の端末画面ではなく、ファイルへリダイレクトするには、「2>」もしくは、「2>>」と指定します。
ここで、気を付けることは、「2 >」「2 >>」と2と>の間にスペースを入れないことです。
・今度は「ls -l today yesterday 2> stderror」コマンドを実行します。
今度はエラーメッセージが表示されません。
$ ls -l today yesterday 2> stderror
-rw-rw-r--. 1 user01 user01 86 1月 24 01:42 today
それは、エラーメッセージが「stderror」にリダイレクトされているからです。
・「stderror」ファイルの内容を確認します。
$ cat stderror
ls: yesterday にアクセスできません: そのようなファイルやディレクトリはありません
エラーメッセージが「stderror」ファイルに出力されていることが確認できます。
標準出力と標準エラー出力を分けることで、エラーメッセージを別のファイルに保存することができます。
演習終了時の作業:ファイルの削除
・この演習で作成したファイルを削除します。
$ rm today stderror
$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos