window下的sqlplus可以通过箭头键,来回看历史命令,用起来非常的方便。
但是在linux里就没有这么方面了,错了一个命令,我们必须重新敲一次,辛苦了手指头叻。
看到一个文章,很方便的一招,给我们带来方便。
通过rlwrap包实现linux里的sqlplus历史命令的功能
这个包依赖readline包
下载
rlwrap-0.36.tar.gzhttp://utopia.knoware.nl/~hlub/rlwrap/
readline-6.1.tar.gzhttp://tiswww.case.edu/php/chet/readline/rltop.html
到本地 oracle目录下
然后解压
由于rlwrap依赖readline包,我们先安装readline包
#gunzip readline-6.1.tar.gz
#tar -xf readline-6.1.tar
#cd readline-6.1
#./configure
#make
#make install
安装以后,我们可以安装rlwrap叻
#gunzip rlwrap-0.36.tar.gz
#tar -xf rlwrap-0.30.tar
#cd rlwrap-0.30
#./configure
#make
#make install
现在rlwrap就已经安装到我们的linux里。
我们可以用rlwrap sqlplus执行试试,好悲惨哟,好像有错误
rlwrap: error while loading shared libraries: libreadline.so.6: cannot open shared object file:
No such file or directory
报错哟,别着急,这里其实这里是.so库没有load到,
你可以修改/etc/ld.so.conf,设置我们so库的load路径,先切换至root下,输入su,接着密码。
先找到这个libreadline.so.6的路径
find / -iname libreadline.so.6
/usr/local/lib/libreadline.so.6
在最后的一行下加上/usr/local/lib就可以叻,这里的
include ld.so.conf.d/*.conf
/usr/local/lib
加入要重启生效,不过我们也可以执行ldconfig即时生效
2、使用
[oracle@localhost ~]$ rlwrap sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Sat Apr 5 10:01:29 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected to an idle instance.
然后就可以使用向上、向下键来调用已经执行过的命令了。
如果嫌每次敲rlwrap不爽,编辑oracle的主目录的.bashrc文件,添加下面的部分,编辑.bashrc文件后别忘了
使配置生效。
# vi .bashrc
alias sqlplus="rlwrap sqlplus"
alias rman="rlwrap rman"
alias lsnrctl="rlwrap lsnrctl"
之后就跟直接使用SQL*PLUS没什么区别了,唯一的好处就是多历史回调功能,方便吧,呵呵。
~> sqlplus /nolog
另网摘:
可以修改Oracle用户的.bash_profile文件,如果不行,试下另一个
[oracle@localhost ~]$ vi .bash_profile
加上:
alias sqlplus="rlwrap sqlplus"
alias rman="rlwrap rman"