您的位置:首页 > 运维架构 > Linux

在linux的SQL*Plus下用上下键翻历史命令

2015-12-02 22:13 721 查看
在Linux的sqlplus中运行SQL语句之后,想用上下键把历史命令找出来,这样是linux系统默认是不支持的。 如何像windows里的cmd窗口的sqlplus一样能上下翻历史命令呢?

可以使用rlwrap工具实现这个功能,不过安装该工具之前需要先安装几个包,不然无法安装rlwrap 工具:

1、readline-6.2.tar.gz

2、libtermcap-devel-2.0.8-46.1.i386.rpm

3、rlwrap-0.37.tar.gz

必须在安装前两个包之后,第三个rlwrap才能正确configure,make ,make install。

但是最后make install之后,还是无法正常使用rlwrap命令,会报出如下错误:

[root@rac10g2 rlwrap-0.37]# rlwrap

rlwrap: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory

需要进行如下设置:

[root@linux rlwrap-0.30]# find / -iname libreadline.so.6

/usr/local/lib/libreadline.so.6

[root@linux rlwrap-0.30]# cp /etc/ld.so.conf /etc/ld.so.conf.backup

[root@linux rlwrap-0.30]# vi /etc/ld.so.conf

# include ld.so.conf.d/*.conf是原文件有的,在ld.so.conf最后加入/usr/local/lib,如下所示:

include ld.so.conf.d/*.conf

/usr/local/lib

[root@linux rlwrap-0.30]# /sbin/ldconfig 使生效。

[root@rac10g2 rlwrap-0.37]# 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]

-r --remember

-R --renice

-v --version

-s <N> --histsize=<N> (negative: readonly)

-S <prompt> --substitute-prompt=<prompt>

-t <name> --set-term-name=<name>

-w <N> --wait-before-prompt=<N> (msec, <0 : patient mode)

-z <filter command> --filter=<filter command>

如上,说明rlwrap正常,登录Oracle账户后进行相关设置即可很方便使用上下键翻出历史命令。

vi .bash_profile

alias s='rlwrap sqlplus / as sysdba'

alias adrci='rlwrap adrci'

alias ggsci='rlwrap /u01/gg/ggsci'

alias bbed='rlwrap $ORACLE_HOME/rdbms/lib/bbed parfile=/home/oracle/bbed/dex.par'

alias rman='rlwrap rman target /'

然后 . .bash_profile使配置文件更改生效。

然后再SQL>下使用如下命令,可以方便操作:

ctrl+r 可以搜索历史命令,很常用的一个
ctrl+a 到行首
ctrl+e 到行尾
ctrl+u 删除到行首
ctrl+k 删除到行尾
ctrl+l 类似 clear 命令效果
ctrl+y 粘贴
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: