当我在Linux上运行Db2 CLP(命令行处理器)并保留在CLP中时,箭头键无法正常工作。
例如,不向我展示我执行的上一个命令,而是按向上箭头生成:^ [[A并按向左箭头生成:^ [[D。
见下文:
[db2inst1@willow ~]$ db2
(c) Copyright IBM Corporation 1993,2007
Command Line Processor for DB2 Client 11.5.0.0
You can issue database manager commands and SQL statements from the command
prompt. For example:
db2 => connect to sample
db2 => bind sample.bnd
For general help, type: ?.
For command help, type: ? command, where command can be
the first few keywords of a database manager command. For example:
? CATALOG DATABASE for help on the CATALOG DATABASE command
? CATALOG for help on all of the CATALOG commands.
To exit db2 interactive mode, type QUIT at the command prompt. Outside
interactive mode, all commands must be prefixed with 'db2'.
To list the current command option settings, type LIST COMMAND OPTIONS.
For more detailed help, refer to the Online Reference Manual.
db2 => ^[[A
我在运行于Windows 10的本地cygwin终端中使用bash,在远程CentOS Linux机器上使用bash,并使用SSH进行连接。是否有配置选项可解决此问题?
这提供了解决方法,而不是解决方法。
Db2交互式CLP(带有默认提示符db2 =>)不能正确处理Linux外壳的上下箭头键,并且我不知道解决方法。即使用户的默认外壳为bash,交互式Db2 clp也无法识别向上和向下箭头键。
Db2 Interactive CLP本机可以正确处理MS-Windows上的向上和向下箭头键。
一种解决方法是在Db2交互式CLP中一起使用History命令和R(runcmd)。例如,如果您在交互式CLP中运行“历史记录”命令,它将显示该会话在此会话中到目前为止运行的命令(但不是先前的会话),并且每个命令都有一个数字。您可以使用R n(其中n是数字)重复该命令。您可以在提交之前使用edit n编辑命令。您可以通过变量控制历史记录中的条目数,用于编辑历史记录的编辑器等,有关详细信息,请参考Db2知识中心。
另一种解决方法是使用基于Java的clpplus
命令,在Linux上该命令将对上下箭头键做出正确的反应。
第三种解决方法是从本地使用MS-Windows的交互式CLP(但是需要在MS-Windows上安装合适的Db2客户端),然后从那里管理远程数据库。尴尬。但是方便快捷的东西,您无需等待ssh会话打开,登录,运行东西并退出。
许多开发人员和DBA使用的第四个选项是,从不使用CLP的交互模式,而仅使用命令模式,然后使用linux shell的功能进行调用和编辑等。如果为自己喜欢的编辑器适当配置了外壳程序选项,则向下箭头键的行为正确。