您的位置:首页 > 运维架构 > Shell

jline初步了解

2016-03-25 09:40 309 查看

jline 初步了解

jline是用java开发的仿shell终端模拟工具包,模拟shell终端,以命令行的方式读取输入信息。

1. 属性配置

原文档地址

两种配置方式:通过jline配置文件配置,或者标准的system properties(jvm或者System.setProperty)配置.

jline.configuration - jline配置文件路径。默认值为$HOME/.jline.rc

jline.terminal - 区别终端类型。

jline.shutdownhook - (true/false) 设定JLine是否安装JVM钩子。用于在程序退出时把中断恢复为原来状态。默认为true。

jline.nobell - 按下无效按键时不响铃。

jline.esc.timeout - (默认 150ms) ESC键按下后jline等待另一个键的时间。

jline.inputrc - 覆盖默认位置$HOME/.inputrc

jline.completion.threshold - 多于此值时,在显示所有匹配值前先发出warning。

Windows Specific

jline.WindowsTerminal.ansi - (默认true)是否支持ANSI。

jline.WindowsTerminal.directConsole - (默认true)是否使用JNI console interaction。(可能会使控制台读取部分处于死循环,可以设置为false,绕过本地Windows API,直接使用Java IO流输出: 博客地址)

Unix Specific

jline.stty - stty程序路径。

jline.sh - (默认为sh) 执行外部程序的shell名称。

2. JLine 2.x Wiki

原文档地址

特性

Command history - 之前被输入的命令会被记录,也可以被持久化。

Line editing - 可以在当前行随意编辑,并支持emacs和vi的key mappings。

Completion - 以可插入方式来实现命令行的tab补全。

Custom key bindings - 按键绑定动作,在.inputrc文件中设定。

Character Masking - 在输入密码时很有用。

99.99% Java - JLine大部分由Java实现,少部分使用本地代码,来支持Windows。

3. 日志配置

原文档地址

JLine不依靠其他日志框架,而是使用内部工具
jline.internal.Log


默认把日志信息输入到
System.err
(默认只输出WARN和ERROR)。可通过以下方式改变输出流:

jline.internal.Log.setOutput(final PrintStream out)


从2.13开始可以使用
java.util.logging
框架。前提是在配置文件中做以下设置:

jline.log.jul=true


想输出DEBUG日志:

jline.internal.Log.debug=true


想要输出TRACE信息:

jline.internal.Log.trace=true


4. 终端配置

原文档地址

jline.terminal=_type_


终端类型:

auto

unix

win

windows

none

off

false

class implementing jline.Terminal

默认值由系统自动决定。

也可以通过以下方式在程序中设定

jline.TerminalFactory.configure(String type)


5. 使用JLine

原文档地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jline shell