このページで解説している内容は、以下の 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