Unix とライフハックの共通点って? を読んで思ったこと。
Unixはライフハックしやすい道具だと思う。 その理由はこんなところだろうか。
- 仕組み化しやすい
- 自分好みにセットできる
- フルスクラッチから自作する環境がある
仕組み化しやすいのは、基本的に操作のログが残るからだ。 スクリプトを書けば、スクリプトが残る。 横着にワンライナーで書いていても、しばらくの間ならhistoryが使える。 grep ~/.history hogehogeで探すも良し。 そして、シェル依存か知らないが、コマンドの置換"^hoge^foo"も結構使える。 最後の"^"は省略しても怒られない。 自分が使ったのはtcshだけだけだから、それ以外は良く知らない。
自分好みに設定できるのは、ドットファイルだろう。 これはあまりにも自由だ。 これは財産だ。 そして、次回のログイン時からその設定は活かされる。 まさに仕組み化。
いざとなれば、基本的なツールを自作することもできる。 そのような材料がついているのだから。 cでもfortranでもperlでもrubyでもpythonでも。 もちろんelispでも。
更に「価値観を提供しない」という哲学を豪語するGTDのように、 Unixは「テキストファイル万歳」というちょっとした思想を持っている。 これの良いところは、
- 基本的に、保存ファイルに何が書いてあるのか分かる(20年後もこのデータを読めるでしょう。たぶん。)
- stdin, stdoutの基本入出力が使える
- パイプが強い(xargsでもいいよ)
「特定ソフトウェアでしか使えない」という制約がないことだ。 専用データ形式での囲い込みが無いことだ。 これは、GTDが「どんなツールをつかってもOK。最終的にタスクとパースペクティブを自分がコントロールできていれば」というのと似ている。 だから一つの結果を得るのにも、幾通りものやりかたがある。
---
まぁ、そういうことなんだが。 話は結構前に戻って。
そして、自作のスクリプトを書き溜めることができる。 小さいコマンドがそこらじゅうに散らばっているが、それを良く見てみたら、それらは部品だった。 それを利用して、組み合わせて、自分好みのツールを作ろう。 一度作ったら、保存して、再利用しよう。 それも一つの仕組み化に違いない。
どこかの既製品を押し付けられることなく自分でカスタマイズする。 そうやって、自分の環境を改善していく。 その改善をお手軽に次回以降の環境に反映できるシステムを作った人達は本当に頭が良いと思う。