在Linux中使用一些软件命令行时,有时会遇到输入异常:方向键不能用,直接按direction键上会出现一堆字符,backspace也是。正常需要按住ctrl退格,不能正常使用home和end键,等等。比如在一个新安装的系统中(不管是debian系统还是rh系统),虽然内置python2是正常的,但是如果自己编译安装一个python3,在输入命令行的时候一般都会出现这种情况。google一下可以查到,只需要安装readline-devel,然后重新编译安装python3,就可以正常了。这涉及linux包readline和readline-devel。关于xx包和xx-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-dev。readline就是这样一个东西:GNUReadline库提供了一组供应用程序使用的函数,允许用户在输入命令行时对其进行编辑。Emacs和vi编辑模式都可用。Readline库包括额外的功能来维护以前输入的命令行列表,重新调用并可能重新编辑这些行,并对以前的命令执行类似csh的历史扩展。亮点:边输入边编辑命令行...目前官网最新版本是7.0,一般软件源比较老,但是够用了。直接安装,yuminstallreadlinereadline(-devel)可以支持大部分linux软件的命令行输入。其实它不仅支持刚才说的python,还支持bash本身,还有ftp等,只是有些低端的软件可能不支持。比如你参与开发的项目中,有些组件是别人编译出来的可执行文件(比如公司自己修改过代码的sqlite),而这个组件正好有这个问题,重新编译的可能性不大自己正常使用。.这时候就有了一个更强大的软件rlwrap,它通过对命令行进行换行的方式来忽略软件本身。github传送门:https://github.com/hanslub42/...可以自行下载编译安装。首先,当然,这个包依赖于gcc。如果没有安装,在检查环境的时候会报错。/configure,yuminstallgcc安装gcc。那么也依赖于上面提到的库文件readline-devel。如果缺少,检查环境时会提示YouneedtheGNUreadlinelibrary(ftp://ftp.gnu.org/gnu/readline/)tobuild。yuminstallreadline-devel已经安装好了库文件,然后就可以正常编译安装rlwrap了。安装后使用rlrwap+原来的命令,例如:rlwrapsqlite3xx.sqlite3,rlwrappython。
