例えばtelnetでメールしたいとき。
(※telnetのオプション次第でラインモードいけたような気もするが、覚えてないや。)
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 sawalin01.sawano.local ESMTP Sendmail 8.13.8/8.13.8; Mon, 7 Dec 2009 00:20:05 +0900
ehk^H^H^H ←★バックスペースで消そうとする。
500 5.5.1 Command unrecognized: ""hk
^[[A^[[A ←★カーソル上でヒストリ出そうとする。
ほかにもsqlplusでOracleの管理したいとき。
SQL> show alll
SP2-0158: unknown SHOW option "alll"
SQL> ^[[A ←★カーソル上でヒストリ出そうとする。
(ノ^皿^)ノ彡┻━┻
こういう時にリードラインラッパーのrlwrapを使うとちょっと楽になる。
rlwrap経由でtelnetとかsqlplusを起動すれば、普段はキャラクタ単位でガンガン通信しようとするのを、行単位で送ってくれるようにしてくれる。
ついでにコマンド履歴をホームディレクトリにテキストで保存してくれるので、コマンドログも取れるしヒストリも使えるということのようだ。
こんな感じで起動すると、それだけでOK。
rlwrap sqlplus /nolog
一行入力するまで送信を待ってくれるので、BackSpaceで修正できるし、カーソル上で直前の入力内容を呼び出せる。
配布もとはこちらさん。
http://utopia.knoware.nl/~hlub/uck/rlwrap/
使っていこう、telnetにはどうするか考え中だけど、sqlplusにはエイリアスしちゃう。
ちなみにcentosでインストールするには、readline-devel が必要だったよ。
追記:virsh で使うのもいいな。