利用rlwrap解决linux系统中第三方命令行出现的方向键等输入不正常

在linux中使用一些软件的命令行时,有时会遇到输入不正常的状况:方向键用不了,直接按方向键会出现一堆字符,退格也是,要按住ctrl才能正常退格,homeend键也不能正经常使用,等等。python

好比在新装的系统中(不管是debian系仍是rh系),自带的python2虽然正常,但若是本身编译装一个python3,进命令行通常就会出现这种状况。google一下能够知道,只须要装好readline-devel后再从新编译安装python3,就会正常。linux

这里涉及到linux的包readlinereadline-develgit

关于包xxxx-devel的区别,摘一段网上的关于openssl的说明为例子:
Redhat在封装openssl的时候,把openssl分红了几个部分,执行码部分就是 openssl-1.0.0-27.el6.x86_64 这种包。openssl-devel-1.0.0-27.el6.x86_64 这个就是包含了头文件,头文件参考,某些库文件等跟开发相关的东西
所以能够把xx-devel理解为库文件。在debian系中好像也有的名称是xx-devgithub

readline是一个这样的东西:
The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. The Readline library includes additional functions to maintain a list of previously-entered command lines, to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.sql

划重点:edit command lines as they are typed in……bash

当前官网最新版本是7.0,通常的软件源都是比较旧的,但够用了。要安装直接yum install readlineapp

readline(-devel)是能够支持大部分linux软件的命令行输入的,实际上它支持的除了刚才说到的python,还包括bash自己,还有ftp等,但有些Low一点的软件,可能就支持不了。还有好比你参与开发的工程中,有些组件是别人编译好的可执行文件(好比公司本身修改过代码的sqlite),而后这个组件刚好就有这个问题,而平时使用不大可能本身去从新编译。ide

这种时候有一个更强大的软件,rlwrap,它是经过包装命令行的方式,无视了软件自己。ui

用法即rlrwap + 本来命令,好比: rlwrap sqlite3 xx.sqlite3, rlwrap pythongoogle

github传送门:https://github.com/hanslub42/...

本身下载编译安装便可,首先固然,这个包依赖gcc,没安装的话在检查环境./configure时就会报错,yum install gcc安装gcc。

而后它还依赖上述的库文件readline-devel,缺乏的话检查环境时最后会提示You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build

yum install readline-devel安装好库文件,接下来能够正常编译安装rlwrap了。

装好后,享受正常的命令行吧。

相关文章
相关标签/搜索