免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1346 | 回复: 0
打印 上一主题 下一主题

Linux下 SQLPLUS 中 退格、方向键问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-21 08:43 |只看该作者 |倒序浏览

一. 退格键的问题
 
       如果退格键不能用,可以使用stty命令来解决。该命令可以改变并打印终端行设置。
 
 
 
以前整理的Blog:
 
      stty 命令
 
       http://blog.csdn.net/tianlesoftware/archive/2010/03/15/5381984.aspx
 
 
 
看这个命令的帮助:
 
[oracle@singledb ~]$ stty --help
 
Usage: stty [-F DEVICE] [--file=DEVICE] [SETTING]...
 
  or:  stty [-F DEVICE] [--file=DEVICE] [-a|--all]
 
  or:  stty [-F DEVICE] [--file=DEVICE] [-g|--save]
 
Print or change terminal characteristics.
 
 
 
  -a, --all          print all current settings in human-readable form
 
  -g, --save         print all current settings in a stty-readable form
 
  -F, --file=DEVICE  open and use the specified DEVICE instead of stdin
 
      --help     display this help and exit
 
      --version  output version information and exit
 
 
 
Optional - before SETTING indicates negation.  An * marks non-POSIX
 
settings.  The underlying system defines which settings are available.
 
 
 
Special characters:
 
 * dsusp CHAR    CHAR will send a terminal stop signal once input flushed
 
   eof CHAR      CHAR will send an end of file (terminate the input)
 
   eol CHAR      CHAR will end the line
 
 * eol2 CHAR     alternate CHAR for ending the line
 
   erase CHAR    CHAR will erase the last character typed
 
   intr CHAR     CHAR will send an interrupt signal
 
   kill CHAR     CHAR will erase the current line
 
 * lnext CHAR    CHAR will enter the next character quoted
 
   quit CHAR     CHAR will send a quit signal
 
 * rprnt CHAR    CHAR will redraw the current line
 
   start CHAR    CHAR will restart the output after stopping it
 
   stop CHAR     CHAR will stop the output
 
   susp CHAR     CHAR will send a terminal stop signal
 
 * swtch CHAR    CHAR will switch to a different shell layer
 
 * werase CHAR   CHAR will erase the last word typed
 
 
 
....
 
 
 
Handle the tty line connected to standard input.  Without arguments,prints baud rate, line discipline, and deviations from stty sane.  In settings, CHAR is taken literally, or coded as in ^c, 0x37, 0177 or 127; special values ^- or undef used to disable special characters.
 
 
 
Report bugs to <bug-coreutils@gnu.org>.
 
[oracle@singledb ~]$
 
 
 
与退格键相关的设置是erase,它表示删除最后一个字符。
 
$stty erase ^H
 
说明:按下退格键会显示成^H
 
 
 
       如果在当前窗口执行的话,只对当前的窗口有效,下次登陆的时候还需要重新设置,可以把这个命令写入shell 的配置文件,如~/.bashrc 中,这样每次都能生效了。
 
 
 
 
 
二. 方向键的问题
 
       WIN 下使用方向键是没有问题的,但是在Linux下,方向键是使用不了了。 可以安装一下rlwrap 工具。
 
       rlwrap本身是个遵循GPL 标准的Shell 脚本,可以运行任何你提供给它的命令包括参数,并添加命令历史浏览功能。

 
 
       可以在http://rpm.pbone.net/ 上搜到这个工具的RPM包。
 
 
 
http://rpm.pbone.net/index.php3/stat/4/idpl/14484200/dir/redhat_el_5/com/rlwrap-0.3
 
7-1.el5.i386.rpm.html
 
 
 
[root@singledb mnt]# rpm -ivh rlwrap-0.37-1.el5.i386.rpm

warning: rlwrap-0.37-1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6
 
Preparing...  ########################################### [100%]
 
   1:rlwrap  ########################################### [100%]
 
 
 
 
 
[oracle@singledb ~]$ rlwrap sqlplus / as sysdba;
 
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Feb 3 15:13:13 2012
 
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> select * from v$version;
 
BANNER
 
----------------------------------------------------------------
 
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
 
PL/SQL Release 10.2.0.1.0 - Production
 
CORE    10.2.0.1.0      Production
 
TNS for Linux: Version 10.2.0.1.0 - Production
 
NLSRTL Version 10.2.0.1.0 - Production
 
SQL> select * from v$version;
 
 
 
       现在就可以上下翻动了。 但是这样没事都需要加上rlwrap 也是很麻烦的,可以对rlwrap 做一个别名,放到shell 的配置文件里,在~/.bashrc 文件里添加如下内容:
 
       alias sqlplus='rlwrap sqlplus'
 
 
 
[oracle@singledb ~]$ cat ~/.bashrc
 
# .bashrc
 
 
 
# Source global definitions
 
if [ -f /etc/bashrc ]; then
 
        . /etc/bashrc
 
fi
 
 
 
# User specific aliases and functions
 
alias sqlplus='rlwrap sqlplus'
 
[oracle@singledb ~]$
 
 
 
[oracle@singledb ~]$ source ~/.bashrc   --让参数生效
 
[oracle@singledb ~]$ sqlplus / as sysdba;  -- 然后就可以正常使用sqlplus了
 
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Feb 3 15:18:07 2012
 
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> select * from v$version;
 
BANNER
 
----------------------------------------------------------------
 
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
 
PL/SQL Release 10.2.0.1.0 - Production
 
CORE    10.2.0.1.0      Production
 
TNS for Linux: Version 10.2.0.1.0 - Production
 
NLSRTL Version 10.2.0.1.0 - Production
 
 
 
SQL>
 
 
 
其他一些组合键:
 
Ctrl+A:ahead,到行的顶端,相当于 Home
 
Ctrl+E:end,到行的末端,相当于end
 
Ctrl+B:behind,后退一个字符,相当于left
 
Ctrl+F:forward,前进一个子放入,相当于right
 
Ctrl+P:prev.,上一行历史记录,相当于up
 
Ctrl+N:next.,下一行历史记录,相当于down
 
Ctrl+U:undo,回复操作,这行就被清空掉了
 
Ctrl+W:剪切
 
Ctrl+Y:粘贴
 
Ctrl+L:cLear,清屏


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/tianlesoftware/archive/2011/01/28/6168219.aspx

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP