今回は「リダイレクト(redirect)」
について学んでみよう
名詞で「リダイレクション
(redirection)」とも呼ぶよ
それってどんな
ものなのかな?
普通はキーボードから入力して
結果が画面に出力されるよね
うん、そうだね!
この「普通」を変更して
出力先や入力元を自由に
変えられる機能なんだよ
うーん…
ピンと来ないなぁ…
echo は
文字列を画面に表示するよ
echo [オプション]... 文字列...
| オプション | 役割 |
|---|---|
-n | 出力の最後に改行を付けない |
-e | \)」\n で |
以下を実行してみよう!
echo hello
どれどれ?
hello
おおっ!画面に
hello って表示されたよ!でも画面に文字が表示されるだけってあまり使い道が思い浮かばないかも
後になると色々な使い道が出てくるから楽しみにしていてね
じゃあその「画面に出力される」 の動きを変えてみようこのように書くよ
コマンド > ファイル
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 を便利に使っていこう!