Linuxでは、画面に出力される内容をファイルに出力したり、逆にキー入力の代わりにファイルから入力させたりするときには、「>」もしくは「<」を使うリダイレクトを使用します。本記事では、Linuxで非常によく使う、このリダイレクトについて説明します。
Linuxのコマンドラインで非常によく使われるのが「リダイレクト」です。Linuxのコマンド例では、よくコマンドの後に「<」「>」という不等号が出てきますが、これがリダイレクトです。
「リダイレクト」は「redirect」つまり「別な方向に(ものを)送る」という意味で、Linuxでは入力・出力先を変更するという意味で使われます。
いま、Linuxではリダイレクトは、入力・出力先を変更するという意味で使われると説明しました。しかし、それだけではいったい何をどう変更するのか、想像しづらいこととでしょう。Linuxでは、基本的に標準出力や標準入力、標準エラー出力がリダイレクトの対象になり、多くの場合は変更された入力・出力先はファイルとなります。
突然「標準入力」「標準出力」「標準エラー」という単語が出てきて戸惑う方もおいででしょうが、これについて次の章にて説明します。いまのところ、
Linuxでは、キーボード入力や画面への出力も、ファイル入力・ファイル出力の一形態として扱われます。そのため、これらに対してもファイルとしての識別子、ファイルデスクリプタ(FD)の番号が充てられています。
それでは、この章の最後にリダイレクトが使われる主な場面を紹介します。
Linuxでリダイレクトが一番多く使われるシチュエーションは、「標準出力をファイルに出力する」場合です。言い換えると、「画面に出力される文字列をファイルへ保存する」場合です。Linuxの通常の使用方法では、コマンドを入力すると、その結果が画面上にあふれてしまい、コマンドの結果が画面の上へ、画面外へとどんどん流れ出てしまいます。
そのため、コマンドの結果を確認しようとするには、Linuxでは一般にリダイレクトでファイルに結果を保存して、それをあとからcatやlessを使って確認するか、のちほど「Linuxでのリダイレクトのパイプについて」の章で紹介する、パイプを経由してlessコマンドなどへ繋いで確認することになります。
同様に最終的にはファイルに出力する際に使われるのですが、「標準出力」ではなく、「パイプラインの出力結果」をファイル出力する際にもリダイレクトはよく使われます。突然パイプラインと言われても困るでしょうが、これはLinuxの1行コマンドで、複数のコマンドをのちほど紹介する「パイプ」で連結してひとつのコマンドのように操る術です。
このパイプラインの出力結果もやはり標準出力に出力されますので、放っておくと画面外へとあふれてしまいます。そこで、パイプラインの出力結果もほとんどの場合、リダイレクトを用いてファイルに出力することになります。
それでは、いよいよ本章からはLinuxで実際にリダイレクトを扱う使い方について、「標準出力」「標準エラー出力」「標準入力」の3つに分けて説明します。
まずは、Linuxの標準出力をリダイレクト経由でファイルに出力する方法をお教えします。わかりやすく、引数をそのまま標準出力に出力するechoコマンドを使って説明します。まず、普通にechoコマンドを使って「Here is applica.」と表示するために、「echo Here is applica.」と入力します。すると、標準出力に「Here is applica.」と返ってきます。
それでは、今度はリダイレクトを使って標準出力をファイルに書き出します。いま、このようにフォルダだけしかないディレクトリにいる状態で、リダイレクトを使ってみます。
さきほどの「echo Here is applica.」のコマンドを、「applica.txt」にリダイレクトして「echo Good bye applica. > applica.txt」と入力します。
1 / 4
続きを読む