利用rlwrap工具解决Oracle不能退格问题
1、安装rlwrap和readline库
我的环境是CentOS7.6,使用yum源直接安装,步骤如下:
(1)RHEL/CentOS/SL Linux 6.x 下安装 EPEL6 yum源:
64位系统:
# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
导入key:
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
默认会在/etc/yum.repos.d/下创建epel.repo和epel-testing.repo两个配置文件。
(2)安装rlwrap和readline:
# yum install rlwrap readline readline-devel
使用rlwrap sqlplus / as sysdba重新启动shell端就可以解决了!
2、源码包编译
如果你的环境是其他Linux发行版,源里没有rlwrap和readline,需要额外对源码进行编译。
(1)下载这两个源码包并编译安装
# wget ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
# tar zxvf readline-6.2.tar.gz
# cd readline-6.2/
# ./configure
# make
# make install
# wget http://utopia.knoware.nl/~hlub/rlwrap/rlwrap-0.37.tar.gz
# tar zxvf rlwrap-0.37.tar.gz
# cd rlwrap-0.37/
# ./configure
# make
# make install
(2)设置sqlplus的系统别名:
# vim /home/oracle/.bash_profile
添加:
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
退出oracle用户再重新登录,问题成功解决!