Lから始まるLinux

2章30話
クォート
2章31話 リダイレクト
もくじ
2章32話
ファイルディスクリプタ
リダイレクト
若木 しげる
今回は「リダイレクト(redirect)」 について学んでみよう 名詞で「リダイレクション (redirection)」とも呼ぶよ
若木 みどり
リダイレクト? それってどんな ものなのかな?
若木 しげる
普通はキーボードから入力して 結果が画面に出力されるよね
若木 しげる
この「普通」を変更して 出力先や入力元を自由に 変えられる機能なんだよ
若木 みどり
うーん… ピンと来ないなぁ…
出力リダイレクト
若木 しげる
echo 文字列を画面に表示するよ
echo [オプション]... 文字列...
オプション役割
-n出力の最後に改行を付けない
-e「バックスラッシュ(\)」によるエスケープを解釈する ( \n「改行」など)
若木 しげる
以下を実行してみよう!
echo hello
若木 みどり
どれどれ?
hello
若木 みどり(驚き)
おおっ!画面に hello って表示されたよ!
若木 みどり(笑顔)
「こだま(echo)」だからこの名前なんだね!
若木 みどり
でも画面に文字が表示されるだけってあまり使い道が思い浮かばないかも
若木 しげる(笑顔)
後になると色々な使い道が出てくるから楽しみにしていてね
若木 しげる
じゃあその「画面に出力される」の動きを変えてみようこのように書くよ
コマンド > ファイル
若木 しげる
echo では以下のようにしてみよう
echo hello > my-file
若木 みどり
あれ?今度は何にも表示されないよ?
若木 しげる
そう文字列 hello の出力先は画面じゃないんだ
若木 しげる
lsファイル一覧を確認してみよう!
ls
若木 みどり
あっ
my-file
若木 みどり
my-file というファイルがある!
cat my-file
若木 みどり
この中身ってもしかして…
hello
若木 みどり(驚き)
中身が helloなっている!
若木 しげる
画面に出力されるはずの文字列 helloリダイレクトで変更してmy-file ファイルに出力させたんだよ
若木 みどり(笑顔)
すごい!1行の文章ならエディタを使わなくてもファイルに保存できるね!
若木 しげる
注意があるよ> を使うと指定されたファイルの中身を全部消してから新しい出力を書き込むんだ
若木 みどり
出力先に上書きする動作になるんだねすでに内容があるファイルに追記はできないのかな?
若木 しげる
できるよ!既に内容があるファイルに追記したい場合には >> を使うよ
コマンド >> ファイル
若木 みどり
なるほど!> は上書き」>> は追記」だね!
若木 みどり(笑顔)
じゃあ my-file ファイルにどんどん内容を追記してみよう!
echo hello2 >> my-file
echo hello3 >> my-file
echo hello4 >> my-file
/dev/null ファイル
若木 しげる
出力リダイレクトを覚えたら/dev/null も一緒に覚えよう!
若木 みどり
ええっと…FHS のときに出てきたよね?たしか「常に空っぽ」ファイルだったと思う!
若木 しげる
そのとおり!何をしても「常に空っぽ」なんだ出力リダイレクトと組み合わせて「出力のゴミ箱」として利用されるよ
コマンド > /dev/null
若木 みどり
出力メッセージを出して欲しくない場合はこのようにするのね!
入力リダイレクト
若木 しげる
リダイレクトは入力元も変更できるよ
コマンド < ファイル
若木 しげる
コマンドキーボード入力の代わりにファイル の内容を入力に使うよ
若木 みどり
あらかじめファイルに入力内容を書いておいて入力リダイレクトすればキーボード操作を自動化できるんだね!
若木 しげる
そのとおり!今の段階では使い道が思い浮かばないかも知れないけどさまざまな場面で役立つから覚えておこうね
まとめ
若木 みどり
今回はリダイレクトを覚えたよ!以下のようにすれば出力先や入力元を変更できるんだ!
記述動作
コマンド > ファイルコマンド の出力を ファイル へ上書き出力
コマンド >> ファイルコマンド の出力を ファイル へ追記出力
コマンド < ファイルコマンド の入力を ファイル から入力
若木 みどり
入力リダイレクトの使い方…passwd で使えそう?
若木 しげる
残念ながら passwdパスワード設定を横着できないよう入力リダイレクトを拒否するんだ
若木 しげる(笑顔)
でも良い着眼点だねそんな感じでリダイレクトを使える場面を探してLinux を便利に使っていこう!