在linux上进行上、下键查找历史命令的工具:rlwrap

在使用linux上的一些交互式程序(比如:isql,dbisql,sqlplus)的时候,想像windows上的命令提示符那样进行上、下键查找曾经敲过的命令。

但是很可能会显示 ^[[A  ^[[H等字符。使用的连接工具如果配置不合适的话,退格键(BACKSPACE)都不能用。

rlwrap就是解决上述问题的好工具。下面主要以CentOS为主介绍rlwrap的安装过程。

可以从这里下载rlwrap-0.37.tar.gz 安装包。

先装上一些安装rpm
一:安装readline

由于rlwrap依赖readline包,我们先安装readline和readline-devel包。CentOS的OS的安装光盘里提供了readline、readline-devel包.

[root@oracle11g ~]# rpm -Uvh readline*
error: Failed dependencies: libtermcap-devel is needed by readline-devel-5.1-1.1.i386.rpm
#readline-develp包依赖于libtermcap-devel!
[root@oracle11g ~]# rpm -Uvh libtermcap-devel-2.0.8-46.1.i386.rpm
[root@oracle11g ~]# rpm -Uvh readline*
package readline-5.1-1.1 is already installed
[root@oracle11g ~]# rpm -Uvh readline-devel-5.1-1.1.i386.rpm
如果配置yum源的话,不用执行上面命令,可以直接执行:yum install readline-devel

二:安装rlwrap
[root@oracle11g ~]# tar -zxvf rlwrap-0.37.tar.gz
[root@oracle11g ~]# cd rlwrap-0.37
[root@oracle11g rlwrap-0.37]# ./configure
[root@oracle11g rlwrap-0.37]# make
[root@oracle11g rlwrap-0.37]# make install
三:方便使用rlwrap

[root@oracle11g rlwrap-0.37]# vi /home/oracle/.bash_profile
添加
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias isql='rlwrap isql'
alias dbisql='rlwrap dbisql'

Linux下的SQL Plus,isql 终于可以像Windows下的那样使用了。

*********************************************************************************************************************
在SUSE Linux Enterprise Server 11 SP1上安装rlwrap的过程如下:

一:编译安装readline
由于rlwrap依赖readline包,我们先安装readline包。readline包下载地址:ftp://ftp.gnu.org/gnu/readline/readline-6.3.tar.gz

#tar xf readline-6.3.tar.gz
#cd readline-6.3/
#./configure
#make
#make install

二:安装rlwrap
安装完readline后就可以安装rlwrap了。

#tar -zxvf rlwrap-0.37.tar.gz
#cd rlwrap-0.37
#./configure
#make
#make install

三:方便使用rlwrap
这时如果直接运行rlwrap会提示:
localhost:/tmp/rlwrap/rlwrap-0.37 # rlwrap -h
rlwrap: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory
解决方法:需要将库的路径加入到配置文件中,操作方法如下:
在/etc/ld.so.conf最后加入/usr/local/lib,执行:
#ldconfig
使配置生效。

在sybase用户的home目录下(注意:非$SYBASE目录)的.bash_profile文件中添加:
alias isql='rlwrap isql'
alias dbisql='rlwrap dbisql'
则以后可以使用isql命令代替rlwrap isql。
 

另外,在SuSE 10sp2中安装rlwrap:http://blog.csdn.net/hw_libo/article/details/6866743

 

  • 本文链接地址:http://www.sybrepair.com/linux-keyup-keydown-histoy-cmd-rlwrap-isql-sqlplus.htm
  • 本文为dbainfo个人原创,请在尊重作者劳动成果的前提下进行转载;
  • 转载务必注明原始出处 : Sybase数据库技术,数据库恢复专家
  • 对《在linux上进行上、下键查找历史命令的工具:rlwrap》有何疑问或见解,请在本文下方发表;
  • 对网站还有其他问题或建议,请提交在留言板,谢谢!
  • 目前还没有任何评论.
    :wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)