解决Linux上sqlplus中的backspace键及上下翻命令问题

来源:互联网 发布:淘宝店铺法人 编辑:程序博客网 时间:2024/06/12 00:59

作者 阿九【转载时请务必以超链接形式标明文章原始出处和作者信息】 



解决Linux上sqlplus中的backspace键及上下翻命令问题



一、解决Backspace删除功能。


在oracle的.bash_profile文件中添加如下内容

stty erase ^h

二、解决上下翻命令问题。

解决上下翻问题需要安装一个工具。

uniread

下载地址:

http://sourceforge.net/projects/uniread/

 

再安装uniread 前,还需要安装其他4个工具。分别是perl、readline、Term、IO-Tty

在系统关盘中,找到 perl-5.8.8-27.el5.i386.rpm 和 readline-5.1-3.el5.i386.rpm 两个包进行安装。

 

如果系统光盘中没有readline,可以在这里下载

 

GNU readline

http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html

 

Term::ReadLine::Gnu

http://search.cpan.org/dist/Term-ReadLine-Gnu/

 

IO::Tty

http://search.cpan.org/dist/IO-Tty/

 

下载好后,先解压

tar -xvzf Term-ReadLine-Gnu-1.20.tar.gz

tar -xvzf IO-Tty-1.10.tar.gz

进入各自目录,分别执行

  perl Makefile.PL

  make

  make install

来进行安装。

在安装完这4个工具后。解压uniread并安装

tar -xzvf uniread-1.01.tar.gz

  perl Makefile.PL

  make

  make install

三、使用uniread

 

以oracle用户执行

 

[oracle@sigle uniread-1.01]$ uniread sqlplus /nolog

[uniread] Loaded history (3 lines)

 

SQL*Plus: Release 10.2.0.4.0 - Production on 星期三 3月 21 23:41:19 2012

 

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

 

SQL>

 

编辑.bash_profile加入以下别名

#ALIAS

alias sq="uniread sqlplus /nolog"

alias sqlplus="uniread sqlplus"

alias rman="uniread rman"

 

四、有关的安全问题

    在oracle主目录下有.bash_logout文件用户用户推出时执行的命令,相对于.bash_profile为用户登录时执行的命令。可以编辑.bash_logout文件,删除用户主目录下的.uniread文件夹下的sqlplus 或rman文件即可清除历史记录。删除文件不影响下次uniread的使用,文件会自动创建。

rm -rf /home/oracle/.uniread/sqlplus

rm -rf /home/oracle/.uniread/rman

 

    使用uniread后记录历史命令,其中可能会涉及到一些用户的密码[如sqlplus test/test],可以采取交互式输入。或者采取如下方式,当用户退出时清空历史记录:
vi .bash_logout    #用户退出登录时,系统会执行的命令
> .uniread/sqlplus   #添加该行在/usr/bin/clear前即可
> .uniread/rman    #添加该行在/usr/bin/clear前即可
/usr/bin/clear
更为高级的办法可以自行编写shell,shell的功能是去除上述两个历史记录文件的中的sqlplus和conn等与密码相关的行,oracle用户注销系统会话时,执行该shell,这样一些与口令相关的内容会自动清除。

 

原创粉丝点击