本文于 5 天前发布,最后更新于 5 天前
一、问题概述
DM数据库的disql中不能进行翻找命令,也不能使用简单的backspace删除,在编辑SQL的时候特别的不方便,本文讲述的rlwrap工具可以用来解决这个问题。
rlwrap是GNU readline的封装程序,可对键盘输入进行编辑。并且维护着每个输入命令的历史记录。
二、安装过程
2.1 yum安装
yum install rlwrap readline readline-devel
2.2 源码安装
下载rlwrap安装包,进行源码编译安装
下载地址:rlwrap-0.45.2.tar.gz
最新地址:rlwrap-0.46.1.tar.gz
将rlwrap-0.45.2.tar.gz文件上传到服务器当中进行源码安装即可
源码编译安装过程
[root@dm ~]# tar zxvf rlwrap-0.45.2.tar.gz
rlwrap-0.45.2/
rlwrap-0.45.2/.gitignore
rlwrap-0.45.2/AUTHORS
rlwrap-0.45.2/BUGS
rlwrap-0.45.2/COPYING
rlwrap-0.45.2/ChangeLog
rlwrap-0.45.2/INSTALL
rlwrap-0.45.2/Makefile.am
rlwrap-0.45.2/NEWS
rlwrap-0.45.2/README.md
rlwrap-0.45.2/completions/
rlwrap-0.45.2/completions/coqtop
rlwrap-0.45.2/completions/testclient
rlwrap-0.45.2/configure.ac
rlwrap-0.45.2/doc/
rlwrap-0.45.2/doc/Makefile.am
rlwrap-0.45.2/doc/rlwrap.man.in
rlwrap-0.45.2/filters/
rlwrap-0.45.2/filters/Makefile.am
rlwrap-0.45.2/filters/README
rlwrap-0.45.2/filters/RlwrapFilter.pm
rlwrap-0.45.2/filters/censor_passwords
rlwrap-0.45.2/filters/censor_passwords.py
rlwrap-0.45.2/filters/count_in_prompt
rlwrap-0.45.2/filters/count_in_prompt.py
rlwrap-0.45.2/filters/debug_null
rlwrap-0.45.2/filters/dissect_prompt
rlwrap-0.45.2/filters/edit_history
rlwrap-0.45.2/filters/ftp_filter
rlwrap-0.45.2/filters/ftp_filter.py
rlwrap-0.45.2/filters/handle_hotkeys
rlwrap-0.45.2/filters/handle_hotkeys.py
rlwrap-0.45.2/filters/handle_sigwinch
rlwrap-0.45.2/filters/history_format
rlwrap-0.45.2/filters/listing
rlwrap-0.45.2/filters/logger
rlwrap-0.45.2/filters/logger.py
rlwrap-0.45.2/filters/makefilter
rlwrap-0.45.2/filters/null
rlwrap-0.45.2/filters/null.py
rlwrap-0.45.2/filters/outfilter
rlwrap-0.45.2/filters/paint_prompt
rlwrap-0.45.2/filters/paint_prompt.py
rlwrap-0.45.2/filters/pipeline
rlwrap-0.45.2/filters/pipeto
rlwrap-0.45.2/filters/pipeto.py
rlwrap-0.45.2/filters/rlwrapfilter.md
rlwrap-0.45.2/filters/rlwrapfilter.py
rlwrap-0.45.2/filters/scrub_prompt
rlwrap-0.45.2/filters/simple_macro
rlwrap-0.45.2/filters/template
rlwrap-0.45.2/filters/unbackspace
rlwrap-0.45.2/src/
rlwrap-0.45.2/src/Makefile.am
rlwrap-0.45.2/src/completion.c
rlwrap-0.45.2/src/completion.rb
rlwrap-0.45.2/src/filter.c
rlwrap-0.45.2/src/main.c
rlwrap-0.45.2/src/malloc_debug.c
rlwrap-0.45.2/src/malloc_debug.h
rlwrap-0.45.2/src/multibyte.c
rlwrap-0.45.2/src/pty.c
rlwrap-0.45.2/src/ptytty.c
rlwrap-0.45.2/src/readline.c
rlwrap-0.45.2/src/redblack.h
rlwrap-0.45.2/src/rlwrap.h
rlwrap-0.45.2/src/signals.c
rlwrap-0.45.2/src/string_utils.c
rlwrap-0.45.2/src/term.c
rlwrap-0.45.2/src/utils.c
rlwrap-0.45.2/test/
rlwrap-0.45.2/test/testclient
rlwrap-0.45.2/test/testit
[root@dm ~]# cd rlwrap-0.45.2/
[root@dm rlwrap-0.45.2]# ll
总用量 100
-rw-rw-r-- 1 root root 982 6月 15 2021 AUTHORS
-rw-rw-r-- 1 root root 2021 6月 15 2021 BUGS
-rw-rw-r-- 1 root root 105 6月 15 2021 ChangeLog
drwxrwxr-x 2 root root 38 6月 15 2021 completions
-rw-rw-r-- 1 root root 18673 6月 15 2021 configure.ac
-rw-rw-r-- 1 root root 17992 6月 15 2021 COPYING
drwxrwxr-x 2 root root 46 6月 15 2021 doc
drwxrwxr-x 2 root root 4096 6月 15 2021 filters
-rw-rw-r-- 1 root root 4137 6月 15 2021 INSTALL
-rw-rw-r-- 1 root root 2123 6月 15 2021 Makefile.am
-rw-rw-r-- 1 root root 24793 6月 15 2021 NEWS
-rw-rw-r-- 1 root root 3851 6月 15 2021 README.md
drwxrwxr-x 2 root root 308 6月 15 2021 src
drwxrwxr-x 2 root root 38 6月 15 2021 test
看到解压后缺少configure文件,则需要执行以下命令
[root@dm rlwrap-0.45.2]# yum -y install automake
上次元数据过期检查:0:26:20 前,执行于 2022年08月27日 星期六 10时20分54秒。
软件包 automake-1.16.2-1.ky10.noarch 已安装。
依赖关系解决。
无需任何处理。
完毕!
[root@dm rlwrap-0.45.2]# aclocal
[root@dm rlwrap-0.45.2]# autoconf
[root@dm rlwrap-0.45.2]# autoheader
[root@dm rlwrap-0.45.2]# autoreconf -ivf
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force
autoreconf: configure.ac: tracing
autoreconf: configure.ac: creating directory tools
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf --force
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:92: installing 'tools/compile'
configure.ac:32: installing 'tools/config.guess'
configure.ac:32: installing 'tools/config.sub'
configure.ac:34: installing 'tools/install-sh'
configure.ac:34: installing 'tools/missing'
parallel-tests: installing 'tools/test-driver'
src/Makefile.am: installing 'tools/depcomp'
autoreconf: Leaving directory `.'
[root@dm rlwrap-0.45.2]# automake --add-missing
[root@dm rlwrap-0.45.2]# ll
总用量 460
-rw-r--r-- 1 root root 42023 8月 27 10:47 aclocal.m4
-rw-rw-r-- 1 root root 982 6月 15 2021 AUTHORS
drwxr-xr-x 2 root root 86 8月 27 10:47 autom4te.cache
-rw-rw-r-- 1 root root 2021 6月 15 2021 BUGS
-rw-rw-r-- 1 root root 105 6月 15 2021 ChangeLog
drwxrwxr-x 2 root root 38 6月 15 2021 completions
-rw-r--r-- 1 root root 9074 8月 27 10:47 config.h.in
-rw-r--r-- 1 root root 9074 8月 27 10:47 config.h.in~
-rwxr-xr-x 1 root root 250227 8月 27 10:47 configure
-rw-rw-r-- 1 root root 18673 6月 15 2021 configure.ac
-rw-rw-r-- 1 root root 17992 6月 15 2021 COPYING
drwxrwxr-x 2 root root 65 8月 27 10:47 doc
drwxrwxr-x 2 root root 4096 8月 27 10:47 filters
-rw-rw-r-- 1 root root 4137 6月 15 2021 INSTALL
-rw-rw-r-- 1 root root 2123 6月 15 2021 Makefile.am
-rw-r--r-- 1 root root 42420 8月 27 10:47 Makefile.in
-rw-rw-r-- 1 root root 24793 6月 15 2021 NEWS
-rw-rw-r-- 1 root root 3851 6月 15 2021 README.md
drwxrwxr-x 2 root root 327 8月 27 10:47 src
drwxrwxr-x 2 root root 38 6月 15 2021 test
drwxr-xr-x 2 root root 126 8月 27 10:47 tools
看到已经有configure文件,即可执行三步走进行安装
[root@dm rlwrap-0.45.2]# ./configure
[root@dm rlwrap-0.45.2]# make
[root@dm rlwrap-0.45.2]# make install
完成安装。
其中,如果./configure 出现如下报错
configure: WARNING: No termcap nor curses library found
checking for readline in -lreadline... no
configure: error:
You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build
this program!
因为缺省了rpm包,则需要执行
yum -y install readline*
注意:此步骤可在安装前执行,先检查是否安装 readline,
rpm -qa | grep readline
若未安装便可执行。
三、配置环境变量
切换到dmdba用户,修改环境变量,增加下面两行
alias disql="rlwrap disql"
alias dmrman="rlwrap dmrman"
保存,退出,使环境变量生效
[dmdba@dm ~]$ source .bash_profile
# 或者
[dmdba@dm ~]$ . .bash_profile
配置完成,再次打开disql便可以使用上下左右及backspace键。