今回は私の愛読ブログ(定時にカエルVBA!閉鎖)の主であるコーヘーさんのツイートに触発されての記事。
氏いわく、
コマンドラインの良さがわかってきた!
とのこと。
そういえば私も一時期自宅でリナックスをメインに使っていてどっぷりコマンドの魅力にはまったことがある。
そのきっかけになったのがこちらの本。

- 作者: Mike Gancarz,芳尾桂
- 出版社/メーカー: オーム社
- 発売日: 2001/02/01
- メディア: 単行本
- 購入: 40人 クリック: 498回
- この商品を含むブログ (145件) を見る
コマンドラインがGUIより優れている点や、UNIXとWindowsのシステムの思想の違いなどが書かれていて非常に面白い。
UNIXやLinuxなど知らなくても面白く読めて、自分が作るツールの設計にも影響を与えてくれた良書である。
たしか、Windowsは機能満載の巨大なアプリケーションを作りがちなのに対し、UNIXにはシンプルで堅牢な、ひとつのことだけをする小さなツールが用意されており、それらを組み合わせて使うといったことが書かれていた。
GUIの場合、Excelが吐き出した結果を別のWebシステムにコピペで移動し、それをまた電卓で処理したり。。というふうに、基本的に別のアプリ同士の連携は手動になることが多い。
これってつまり、いちいち人間が仲介する必要があるということ。
人間→入力→アプリA
人間←結果←アプリA
人間→入力→アプリB
人間←結果←アプリB
人間→入力→アプリC
人間←結果←アプリC
コマンドだと、プログラム同士で勝手にやってくれる。
あるコマンドの出力がそのまま別のコマンドの入力になる。
人間→入力→コマンドA→コマンドB→コマンドC
人間←結果←コマンドC
例えば、再帰的にフォルダをリストアップし、結果から"xlsx"を含むファイルだけを昇順ソートして1ページずつ表示させるWindowsのコマンドは、以下のとおり。
dir /s /b | find "xlsx" | sort | more
人間→入力→Dirコマンド→Findコマンド→Sortコマンド→Moreコマンド
人間←結果←Moreコマンド
ほら、すばらしい連携プレー。
これがUNIXだと、もっと鮮やか。。という話。