Learning the shell — Lesson 7: I/O Redirection
学習日: 180906
所要時間: 5時間
ストリーム
記事の中に説明はないが、ストリームの概念を念頭に置いて再度記事を読んだら理解が深まった。
Piping and Redirection!
https://ryanstutorials.net/linuxtutorial/piping.php
ストリームとは
コマンドが入力データを受け取って、処理した結果を出力するという一連の流れのこと。
ストリームの識別
Linuxはストリームを番号で識別している。
standard input: 0
standard output: 1
standard error: 2
ストリームの出力先
ストリームごとに出力先が異なる。
standard input: キーボード
standard output: ディスプレイ
standard error: ディスプレイ
リダイレクトを用いたストリームの変更
リダイレクトを使うとストリーム入出力先を変更することができる。
I/O Redirection
この記事では input/output redirection について学ぶ。
Standard Output
standard outputをリダイレクトするために ”>” が使われる。
“>” 内容を上書きする
[me@linuxbox me]$ ls > file_list.txt
コマンドの結果がディスプレイに表示されずに file_list.txt に記載された。
“>>” 内容を追記する
[me@linuxbox me]$ ls >> file_list.txtファイルが既に存在する場合は既存の内容はそのままで
最後に追記される

lsコマンドの結果が最後に付け加えられた。
上書き”>”も、追記”>>”も
ファイルが存在しなければ新規にファイルを作成した上で出力される。
Standard Input
standard inputをキーボードの代わりにファイルから入力するには”<”が使われる。
[me@linuxbox me]$ sort < file_list.txt
コマンドの結果がディスプレイに表示された。
[me@linuxbox me]$ sort < file_list.txt > sorted_file_list.txt
コマンドの結果がディスプレイに表示されずに sorted_file_list.txt に記載された。
リダイレクト記号で(”<” and “>”)ストリームを切り替えているため
操作の順序は関係ない。
Pipelines
standard outputコマンドが別のstandard inputに引き渡される。
Filters
standard inputを受け取り、特定の操作を実行したあと結果をstandard outputに送る。
その他
色々組み合わせて試した。
UNIX / LINUX CHEAT SHEET
http://cheatsheetworld.com/programming/unix-linux-cheat-sheet/
気になってぐぐってたら深掘りしすぎた。
入力と出力https://shellscript.sunone.me/input_output.html#%E5%85%A5%E5%8A%9B%E3%81%A8%E5%87%BA%E5%8A%9B
フィルタを使用した文字列操作 1
https://shellscript.sunone.me/filter_sed.html
フィルタを使用した文字列操作 2
https://shellscript.sunone.me/filter_etc.html
質問事項
特になし
所感
できることがありすぎて永遠にぐぐってたら収拾がつかないことになった。
とりあえず動かしてみると、自分の理解してる点と不明点がはっきりする場合もあったのでその点は良かった。
メモ
これだけは覚えておきたい!基本的なUNIXコマンド20【初心者向け】https://techacademy.jp/magazine/6406
初心者向け!Linux操作技術~標準入出力とリダイレクト~https://www.kenschool.jp/blog/?p=1143
Some Basic UNIX Commands
https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html