からだのブログ

五体満足に生まれてきたことに感謝してブログの名前を「からだ」にしました。

からだのブログ header image 2

こういうの欲しい: lsh

7月 13th, 2009 · 3 Comments · softwares, tek

こういうの無いのかな。 sshの X11 転送みたいな感じで、リモートの標準出力をローカルの標準入力に食わすやつ。

具体例として、 X が動いているローカルマシンから、X が動いていないリモートマシンに ssh した状態を想定してほしい。

そこでは vi などを使ってソースコードを編集している。で、ふと diff を見たくなった。 diff すると、だだだーと差分がターミナル上を流れていく。リモートでそのまま less などで観てもいいけど、 KDE を使ってるなら、kompare したいわけだよ。ヌルヌル動くし。

というわけで、普通ならそこから diff をリモートでファイルとしておとしておいて、それをローカルにもってきて kompare に食わすとか、sshfs でマウントしておいて作業するとかいろいろあると思う。もしくは、

local $ ssh boo@remote ‘diff /home/boo/work/foo.old /home/boo/work/foo.new’ | kompare -o –

なんて方法もあるかもしれない。これも悪くは無い。ただ、リモートに ssh してる状態から、一旦ローカルからの目線に切り替えるのは嬉しくない。何度もやるのはくたびれる。だから、

remote $ diff foo.old foo.new | lsh kompare -o –

とかしたい。lsh ってのは、 rsh の反対の Local SHell のことで、今俺が欲しいもの。これをやると lsh 以降のコマンドライン引数と一緒に、lsh への標準入力が ssh を通ってやってくる。で、ローカルでそれを受け取ったら、ローカルで kompare -o – が実行されるわけ。ちょうど X11 転送みたいなもんだ。

netpipes ってのを見つけたんだが、まだドキュメント読んでないからよくわからん。というわけで、 lsh みたいなものを知っている人、もっといい解決案があることを知っている人は教えてください。

あ、 /home/boo/local 以下に KDE を、、、ってのは無しで。統一されていない様々な種類のサーバにアクセスする環境では、あんまり重い — 特にインストール負担 — ソフトウェアを何度もインストールしたくないので。

Tags: