赤宿 = Red Inn

素人の試行錯誤と2Dローグライク・ゲーム制作

ターミナルが意外に役立つ

 せっかくMacを買ったので、シェルに入門していた。参考書は、シェルプログラミング実用テクニック。シェル芸の人が書いてくれた本だったみたいで、読み物として楽しい。一行でデータを加工する『ワンライナ』の書き方が語られている。

 ネタのつもりで遊んでいたが、本気で役立つ。手持ちのデータ、ファイル群を思い通りに処理できる可能性が見えた。/posts/に原稿を入れておき、タグなどの形式を変換して/build/platform/に出力、みたいな遊び方をしている。

 複雑になるとPythonの方が良いが、単純な変換なら、シェルに軍杯が上がる。入出力のためにpathlibの使い方を調べなくても、変換(with 正規表現)のエッセンスを調べるだけで済む。パイプでコマンドを繋ぐ形式のおかげで、段階的に出力を見て動作を確認できるのもいい。最後に、実際にファイルを変換する。

 検索も強く、これが一番役立っている。IDEディレクトリ単位の検索方法が分からない時も、grepコマンドで代替できた:

~/Desktop/dev/cs/Jet/Nez/Nez.Portable/UI $ grep -Ern --color '( |\t)Stage ' *
Base/Element.cs:9:     protected Stage stage;
Base/Element.cs:66:        public Stage getStage()
...

 IDEにも優秀な機能があるみたいだが、シェルからの検索も底力になると思う。

 grepは、日本語文書から検索する時にも使える。段落単位で抜き出してくれるため、前後の状況も分かる。その周囲を読みたければ、行番号を使って飛べばいい。素晴らしく速い。


 環境構築では、iTerm2をインストールし、プロンプト('~/ $ 'など)の表示を変えた。Finder(ファイルのエクスプローラ)からターミナルの新規タブを開けるようにしたり、アプリのランチャも入れてみた。

 Vimも始めた。便利なメモ帳程度の使い方はできるようになった。レンジベースの操作ができるだけでも、何か面白いことをしている気になれる。iTerm2のタブをpaneに分割し、原稿のエディタ、フォルダのビューワ、スクリプトのエディタなどを一つのウィンドウに表示してみた。高級な環境に思えて楽しい。

 いずれ、ツイッタ、wiki、辞書なども、ターミナルから読むようになるかもしれない。ブラウザも欲しい。そういう遊びをしてみたい。

 目を通したコマンドは、man, less, touch, mv, cp, rm, cd, mkdir, rmdir, ls, tree, find, xargs, while, read, cat, wc, grep, echo, printf, >, >>, <, sed, awk。最後の二つが怪しいが、他は大体思い通りに使える。正規表現は全然ダメ。