PS:近來因工作需要業(yè)余在學(xué)習(xí)oracle,發(fā)現(xiàn)通過SecureCRT或putty等SSH客戶端遠(yuǎn)程登錄Linux下oracle的sqplus時(shí),輸錯(cuò)字符后按Backspace鍵或Del鍵刪除時(shí),會出現(xiàn)^H或其他亂七八糟的的字符,感覺非常別扭不習(xí)慣,雖然可以通過Ctrl+Backspace組合鍵實(shí)現(xiàn)刪除功能,但是嚴(yán)重影響使用效率。google了一番,終于完美解決此問題??偨Y(jié)記錄如下,本文是此問題最完整的總結(jié):
亂七八糟的字符如圖:
一、SecureCRT終端里的解決方法:(不完美)
在SecureCRT終端里,如果要在sqlplus下使用Backspace來刪除字符,有兩種臨時(shí)方法。
第一種是使用stty命令重新定義^H,可以在使用sqlplus之前執(zhí)行stty erase ^H,也可以把這一句放到oracle用戶的.bash_profile文件里。
stty命令簡介:
Unix或者Linux中有個(gè)stty命令,它的作用是打印或更改terminal(終端)的設(shè)置。
常用參數(shù):
-a --all 用人類可讀表格,打印出所有現(xiàn)有設(shè)置
-g --save 用stty可讀表格,打印出所有現(xiàn)有設(shè)置
--help 幫助
--version 版本
查看當(dāng)前stty現(xiàn)有設(shè)置,如圖:
第二種是使用SecureCRT的設(shè)置,在會話屬性的Terminal->Emulation->Mapped Keys中,選中Backspace sends delete或Delete sends backspace中的其中一個(gè),并確保另一個(gè)不被選中。
另一個(gè)問題是bash shell下的sqlplus中使用上下箭頭無法顯示上下命令,而只是顯示^[[A,這個(gè)問題可以安裝rlwrap這個(gè)工具解決!
二、利用rlwrap工具解決方法:(完美)
1、安裝rlwrap和readline庫
CentOS下可以用EPEL的yum源直接安裝,步驟如下:
(1)RHEL/CentOS/SL Linux 6.x 下安裝 EPEL6 yum源:
32位系統(tǒng)選擇:
# rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
64位系統(tǒng)選擇:
# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
導(dǎo)入key:
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
默認(rèn)會在/etc/yum.repos.d/下創(chuàng)建epel.repo和epel-testing.repo兩個(gè)配置文件。
(2)安裝rlwrap和readline:
# yum install rlwrap readline readline-devel
其他Linux發(fā)行版如果源里沒有rlwrap和readline的(如SUSE企業(yè)版默認(rèn)沒有這兩個(gè)包),要分別下載這兩個(gè)源碼包編譯安裝一下。
# 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)設(shè)置sqlplus的系統(tǒng)別名:
# vim /home/oracle/.bash_profile
在頭部或尾部添加:
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
退出oracle用戶再重新登錄就ok?,F(xiàn)在sqlplus用起來就很爽很習(xí)慣了!
您可能感興趣的文章:- Oracle基礎(chǔ):程序中調(diào)用sqlplus的方式
- Oracle基礎(chǔ):通過sqlplus執(zhí)行sql語句后的結(jié)果進(jìn)行判斷
- 使用sqlplus命令行工具為oracle創(chuàng)建用戶和表空間
- oracle11g管理員密碼忘記怎么辦 sqlplus解決忘記密碼問題
- Linux下Oracle中SqlPlus時(shí)上下左右鍵亂碼問題的解決辦法
- oracle 中 sqlplus命令大全
- Python調(diào)用SQLPlus來操作和解析Oracle數(shù)據(jù)庫的方法
- oracle 安裝與SQLPLUS簡單用法
- oracle sqlplus 常用命令大全
- Oracle通過sqlplus連接數(shù)據(jù)庫的方式