使用rlwrap增强Linux中的sqlplus命令行功能
rlwrap是一个基于GNU readline library的工具,能够使一些普通的命令行(比如oracle中的sqlplus、rman等)具有历史输入回溯和错误回退修正的增强功能。

下载

[oracle@zhen-fedora ~]$ wget http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.37.tar.gz

--2010-08-10 21:16:52--  http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.37.tar.gz

Resolving utopia.knoware.nl... 213.197.30.29

Connecting to utopia.knoware.nl|213.197.30.29|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 251438 (246K) [application/x-gzip]

Saving to: `rlwrap-0.37.tar.gz'

100%[======================================>] 251,438     59.0K/s   in 4.2s

2010-08-10 21:16:58 (59.0 KB/s) - `rlwrap-0.37.tar.gz' saved [251438/251438]
准备安装目录

[root@zhen-fedora local]# mkdir rlwrap
[root@zhen-fedora local]# chown oracle.dba rlwrap/
编译安装

[oracle@zhen-fedora ~]$ tar -zxvf rlwrap-0.37.tar.gz
[oracle@zhen-fedora rlwrap-0.37]$ ./configure --prefix=/usr/local/rlwrap
[oracle@zhen-fedora rlwrap-0.37]$ make
[oracle@zhen-fedora rlwrap-0.37]$ make install
在/bin下添加文件link

[root@zhen-fedora rlwrap]# cd /bin
[root@zhen-fedora bin]# ln -s /usr/local/rlwrap/bin/rlwrap  rlwrap
[root@zhen-fedora bin]# ll rlwrap
lrwxrwxrwx. 1 root root 28 2010-08-10 21:38 rlwrap -> /usr/local/rlwrap/bin/rlwrap
在oracle用户的./bash_profile中添加下面两句:

alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
然后source一下,再使用sqlplus rman的时候就可以通过上翻来查看历史命令,也可以通过回退键删除输入错误的内容。