sqlplus命令历史解决方案

在Linux上使用sqlplus比较痛苦,因为不能使用上下方向键来调出命令历史,也不能使用左右键移动光标对输入的命令进行修改,甚至连Backspace键都不能用(不过我发现大部分Backspace不能使用的地方都可以用Ctrl+Backspace进行退格删除),只能Ctrl+u清除已经输入的命令。这简直是对我们命令熟练程度和击键准确度的极大挑战。

 
有没有办法可以让sqlplus像shell一样具有便利的命令历史功能呢?答案是“万能”的rlwrap!既然号称“万能”,就不仅仅是可以解决sqlplus的问题,凡是像sqlplus一样没有命令历史的(比如tclsh)都可以用rlwrap来解决。
 
rlwrap是一个wrapper,它接收我们输入的命令并交给我们指定的程序去执行,同时使用GNU readline库提供命令行编辑功能并且记录命令历史。
 
这里下载rlwrap的源码,编译安装并且将rlwrap加入PATH变量。如前所述rlwrap依赖readline,因此编译前请确保系统中readline库及其开发包。有些发行版的软件仓库中包含了rlwrap,那就可以直接使用系统的包管理器安装了。
 
安装好rlwrap以后,使用rlwrap调用sqlplus就可以享用熟悉的命令行编辑和命令历史功能了:
rlwrap sqlplus
如果觉得每次都要加上rlwrap很不方便,在.bashrc中定义shell alias别名就好了:
alias sqlplus="rlwrap sqlplus"
 
实际上rlwrap将我们输入的命令都保存到了HOME目录中的一个隐藏文件中,以此提供命令历史。这个文件的命名与我们要执行的程序相关,比如使用rlwrap包裹sqlplus,则命令历史文件是.sqlplus_history。
 
另外,通过指定命令行选项,rlwrap还能提供一些补全功能(如文件路径补全、单词补全等),这里就不多说了。
 

转载于:https://www.cnblogs.com/hellogc/p/3221074.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值