Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10326700
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: Oracle

2011-11-30 17:45:54

Linux 下 SQLPLUS 中 退格 方向键问题
分类: Oracle 高级知识 Linux 963人阅读 评论(2) 举报

 

. 退格键的问题

       如果退格键不能用,可以使用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 .

[oracle@singledb ~]$

 

与退格键相关的设置是erase,它表示删除最后一个字符。

$stty erase ^H

说明:按下退格键会显示成^H

 

       如果在当前窗口执行的话,只对当前的窗口有效,下次登陆的时候还需要重新设置,可以把这个命令写入shell 的配置文件,如~/.bashrc 中,这样每次都能生效了。

 

 

. 方向键的问题

       WIN 下使用方向键是没有问题的,但是在Linux下,方向键是使用不了了。 可以安装一下rlwrap 工具。

       rlwrap本身是个遵循GPL 标准的Shell 脚本,可以运行任何你提供给它的命令包括参数,并添加命令历史浏览功能。

 

       可以在 上搜到这个工具的RPM包。

 

 

[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+Aahead,到行的顶端,相当于 Home

Ctrl+Eend,到行的末端,相当于end

Ctrl+Bbehind,后退一个字符,相当于left

Ctrl+Fforward,前进一个子放入,相当于right

Ctrl+Pprev.,上一行历史记录,相当于up

Ctrl+Nnext.,下一行历史记录,相当于down

Ctrl+Uundo,回复操作,这行就被清空掉了

Ctrl+W:剪切

Ctrl+Y:粘贴

Ctrl+LcLear,清屏

 

 

 

阅读(1760) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~