乱七八糟的字符如图:
一、SecureCRT终端里的解决方法:(不完美)
在SecureCRT终端里,如果要在sqlplus下使用Backspace来删除字符,有两种临时方法。
第一种是使用stty命令重新定义^H,可以在使用sqlplus之前执行stty erase ^H,也可以把这一句放到oracle用户的.bash_profile文件里。
stty命令简介:
Unix或者Linux中有个stty命令,它的作用是打印或更改terminal(终端)的设置。
常用参数:
-a --all 用人类可读表格,打印出所有现有设置
-g --save 用stty可读表格,打印出所有现有设置
--help 帮助
--version 版本
查看当前stty现有设置,如图:
第二种是使用SecureCRT的设置,在会话属性的Terminal->Emulation->Mapped Keys中,选中Backspace sends delete或Delete sends backspace中的其中一个,并确保另一个不被选中。
另一个问题是bash shell下的sqlplus中使用上下箭头无法显示上下命令,而只是显示^[[A,这个问题可以安装rlwrap这个工具解决!
二、利用rlwrap工具解决方法:(完美)
1、安装rlwrap和readline库
CentOS下可以用EPEL的yum源直接安装,步骤如下:
(1)RHEL/CentOS/SL Linux 6.x 下安装 EPEL6 yum源:
32位系统选择:
# rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
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
其他Linux发行版如果源里没有rlwrap和readline的(如SUSE企业版默认没有这两个包),要分别下载这两个源码包编译安装一下。(无论什么linux都可以用这个方法,我就是用的这个方法) 这两个安装程序我已经上传了(如果虚拟机没有连接外网可以下载后通过ftp上传),可以直接下载:安装程序下载地址
# 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
(3)设置sqlplus的系统别名:
# vim /home/oracle/.bash_profile
在头部或尾部添加:
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
退出oracle用户再重新登录就ok。现在sqlplus用起来就很爽很习惯了!
Oracle(Oracle培训 )下的SQL(SQL Server培训mySQL培训 )plus中不能使用方向、退格键,从网上查下有小工具可以实现,就弄个玩玩了,毕竟方便。
linux下使用rlwrap回调sqlplus中执行过的命令
从官方下最新
rlwrap-0.37.tar.gz http://utopia.knoware.nl/~hlub/uck/rlwrap/
安装
[root@sunsyk src]# tar xvfz rlwrap-0.37.tar.gz
[root@sunsyk src]# cd rlwrap-0.37
[root@sunsyk rlwrap-0.37]# ./configure --prefix=/usr/local/rlwrap
[root@sunsyk rlwrap-0.37]# make && make install
使用
[root@sunsyk rlwrap-0.37]#vim /home/oracle/.bash_profile
添加
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
PATH=/oracle/10g/bin/:/usr/local/rlwrap/bin/:$PATH
export PATH
[root@sunsyk rlwrap-0.37]# su - oracle
[oracle@sunsyk ~]$ /usr/local/rlwrap/bin/rlwrap sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jul 27 21:29:05 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> show user
USER is "SYS"
SQL>