Webブラウザ上でRuby on Railsアプリケーションの開発を可能にするサービス「Heroku」の開発者Adam Wiggins氏のブログで、「rush」と呼ばれるRuby言語を用いたシェルが紹介されている。

rushは同氏が開発を行っているシェル。シェルとして現在もっとも一般的に利用されているのはbashであるが、同氏はbashにはさまざまな問題があるとしている。

たとえば、少し複雑なことを行おうとすると、シングルクォートやダブルクォート、バッククォートが入れ子になり、記述するのも理解するのも困難になってしまう。また、シェルでパイプを用いて複数のコマンドを組み合わせた場合、値の受け渡しはすべて空白と改行区切りを基本としたテキストデータで行われるため、値として空白文字が含まれいる場合には問題が発生することもある。そのほか、シェルから呼び出されるcpやmv、grep、sedといったコマンドは、それぞれ独自のインタフェースを持っているため、すべてをマスターして使いこなせるようになるには、多くのことを覚える必要があり、大変なのも問題点のひとつだとしている。

このような問題を解決するために開発されたのがrushである。rushは、Ruby言語を用いて操作を行えるシェルだ。rushを利用した場合、Rubyスクリプトと同様の見通しのよい構文でコマンドを記述することが可能になる。同氏が「UNIXのコマンドラインと同じことがすべて行えるirb(Rubyのインタラクティブ環境)」と説明しているように、rushはRubyと同等の機能を持ち、将来はbashの代替として使用されることを視野に入れて現在開発が行われているという。

rushに関して興味深い点はもうひとつある。それは、単にbashの代替としてだけではなくsshの代替としても利用可能であり、sshを上回る能力を持っているという点だ。

rushでは、1つのシェルから複数のマシンに同時にリモート接続を行うことが可能になっている。シェル内では、それぞれの接続はオブジェクトとして変数で管理されるため、画面を切り替えることなくすべての操作をシームレスに行える。また、独自のコマンドをマシン間で受け渡すことにより、リモートのデータベースにアクセスするような感覚でデータの送受信を行えるようになっているのである。

rushは発表されたばかりのツールだ。今はまだ実用の域には達していないかもしれないが、大きな可能性を秘めているといえるだろう。