您的位置:首页 > 运维架构 > Linux

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

2012-04-15 17:50 567 查看

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

解决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,这样一些与口令相关的内容会自动清除。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: