相信很多初学Oracle的同仁都有这样一个问题,在使用sqlplus或者rman工具的时候,苦于不能左右移动光标,或者不能上下翻看命令历史,跟Linux文本模式相比,实在不通人情。
好在开源的Linux奇妙无比,总有那么一些人,侠骨柔情,救广大网民与水深火热之中,开发出一个个巧妙的作品,供各位使用把玩。readline wrap(rlwrap)就是这样的一个工具,sqlplus和rman中不能左右移动光标,不能上下翻看命令历史的问题,可以很好的解决。
rlwrap的安装很简单,下面做简单的介绍。
首先下载安装包:
http://utopia.knoware.nl/~hlub/uck/rlwrap/ 这里下载rlwrap-0.37.tar.gz (248 k)
使用RedHat EL的同仁们,可以到如下地址下载rpm包:
http://rpm.pbone.net/index.php3/stat/4/idpl/14484200/dir/redhat_el_5/com/rlwrap-0.3
可以根据需要,选择自己的偏好,这里以gz格式的安装为例:
需要的gz包下载好后,上传到目的机器上的/tmp目录,可以用CRT工具的SFTP工具,或者Xmanager的xftp工具,个人比较喜欢xftp,图形化界面,并且可以方便的上传下载文件夹。
#cd /tmp
确认文件存在
#ls rlwrap-0.37.tar.gz
解压:
#tar -zxvf rlwrap-0.37.tar.gz
#cd rlwrap-0.37
#ls
其中可以看到configure文件,运行之:
#./configure
如果有必须的依赖包没有安装,会在最后提示安装,一般是
rlwrap-devel包,可以根据情况,自己找找,安装好
进行编译安装
#make
#make install
安装好后,可以在Oracle用户下验证安装
#su - oracle
#rlwrap
Usage: rlwrap [options] command ...
Options:
-a[password:] --always-readline[=password:]
-A --ansi-colour-aware
-b <chars> --break-chars=<chars>
-c --complete-filenames
-C <name|N> --command-name=<name|N>
-D <0|1|2> --history-no-dupes=<0|1|2>
-f <completion list> --file=<completion list>
-g <regexp> --forget-matching=<regexp>
-h --help
-H <file> --history-filename=<file>
-i --case-insensitive
-I --pass-sigint-as-sigterm
-l <file> --logfile=<file>
-n --no-warnings
-N --no-children
-o --one-shot
-O <regexp> --only-cook=<regexp>
-p[colour] --prompt-colour[=colour]
-P <input> --pre-given=<input>
-q <chars> --quote-characters=<chars>
-m[newline substitute] --multi-line[=newline substitute]
............
出现以上提示,说明安装成功,如果提示命令未找到,那么在PATH中,加入/usr/local/bin目录
$PATH=/usr/local/bin:$PATH;export PATH
这里,就可以运行rlwrap sqlplus /nolog来启动sqlplus了,可以体验readline的神奇功能。
当然,为了一劳永逸,可以在Oracle用户的.bash_profile文件中,添加如下行:
alias sqlplus=’rlwrap sqlplus’
alias rman=’rlwrap rman’
这样,跟之前运行sqlplus和rman没有任何区别,只是,用起来要爽多了。
重要提示:即使退出sqlplus,重新进入,之前的命令同样也可以翻看。
如何,心动不如行动,更多好处,等你来分享。