# Rubyの構文が使えるシェル「rush」がステキ _published: 2009/04/24_ ![alt](http://b.hatena.ne.jp/entry/image/http://d.hatena.ne.jp/shunsuk/20090424/1240578168) Schemeのシェルがありますが、こちらについては後述。WindowsにはPowerShellという.NETなシェルがあります。今回は、Rubyのシェル「rush」です。これも以前からたくさんのブクマがついていてい、いまさら感でいっぱいですが。 - [rush](http://rush.heroku.com/) 「UNIXのコマンドラインと同じことがすべて行えるirb」だそうな。 トップページに載っている例を2つほど。 普通は、こう。 ```sh find myproj -name \*.rb | xargs grep '^\s*class' | wc -l ``` rushだと、こう。 ```ruby myproj['**/*.rb'].search(/^\s*class/).lines.size ``` 普通は、こう。 ```sh kill `ps aux | grep mongrel_rails | grep -v grep | cut -c 10-20` ``` rushだと、こう。 ```ruby processes.filter(:cmdline => /mongrel_rails/).kill ``` 見てのとおり、Rubyです。オブジェクト指向です。 シェルの拡張もカンタン。この記事を参考に。 - [InfoQ: rush - Rubyが使えるOOPシェル](http://www.infoq.com/jp/news/2008/03/rush-oop-shell) IPアドレスを取得するコマンドです。 ```ruby class Rush::Box def ip_address bash("ifconfig | grep inet | grep -v 127.0.0.1").match(/addr:([\d.]+)/)[1] end end ``` あと、リモート接続の機能があるそうな。 - [Rubyの構文でシェルを実現する「rush」 | エンタープライズ | マイナビニュース](http://journal.mycom.co.jp/news/2008/02/22/042/index.html) Schemeのシェルについて少し。scshというシェルがあります。構文がSchemeです。 - [Scsh - The Scheme Shell](http://www.scsh.net/) で、id:higeponがやってるのは、SchemeシェルをOS (Mona OSのデフォルトシェルにしようということです。そこが新しい。 - [IPA:2006年度下期「未踏ソフト」採択概要:5-3](http://www.ipa.go.jp/jinzai/esp/2006mito2/gaiyou/5-3.html) 上記ページより。 普通は、こう。 ```sh find -name "*.h" | xargs grep 'void sub()' ``` Schemeシェルだと、こう。 ```scheme grep "void sub()" (find "*.h")) ``` なんにせよ、自分の好きな言語でマシンを管理できたらステキです。id:amachangは、JavaScriptのシェルを作ればいいよ。