在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 粘贴
可以使用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 粘贴
相关文章推荐
- Linux学习笔记(一、ls命令及文件属性)
- 菜鸟学Linux命令:lsof命令 查找指定用户、进程、端口打开的文件
- linux下安装lnmp环境
- linux中export和source的作用和区别
- linux增加vlan网卡配置
- Linux下C++的编程——开偏介绍
- arm-linux内核启动学习笔记(一)
- 第二天 Linux常见命令
- Linux简单命令之一
- Linux 内核链表
- linux下C++ STL hash_map的使用以及使用char *型变量作为Key值的一大“坑”
- LINUX下SQLPLUS无法使用删除及上下键
- linux内存屏蔽技术
- LINUX 安全运维 (五)
- linux0.11 内核启动代码分析(二)
- Windows中查找命令的路径 (类似Linux中的which命令)
- linux 软件卸载
- Linux里类似批处理中的pause命令
- Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)
- windows复制文件到Linux或Windows,有关FTP的配置与使用