实现pry,ronin,msf类似的终端下交互功能,这里主要用到了ripl gem:
1.能够调用定义的方法,如help
2.能够执行系统命令
3.能够类似irb/pry进行ruby语言解析
安装:
gem install ripl gem install ripl-shell_commands
示例
ripl这个gem,它也提供很多插件,如下是一个简单的终端下交互实现:
require 'ripl' require 'ripl/shell_commands' require 'ripl/color_result' require 'ripl/color_streams' require 'ripl/commands' require 'ripl/rocket' #设置输出颜色 Ripl.config[:color_streams_stdout] = :light_blue Ripl.config[:color_streams_stderr] = :light_red #定义提示符号 Ripl.config[:prompt] = lambda {"[#{Ripl.shell.line.to_s}] cmd> " } # Define plugins, load files, etc... class Dodolook def help puts "xiaomi noops blog" end def name "wilbur" end end dodo = Dodolook.new verison = "1.0.3" Ripl.start :binding => dodo.instance_eval{ binding }
使用
在终端下运行程序后,出现[0] cmd>这样的提示,其中help、name、dodo这些变量/方法可以tab补全。
运行shell命令前加!,如:!df
还有更多内部方法,如: history, list, jump…
下面是我试图实现的:打开一个shell(korn或bash,没关系),从该shell,我想打开一个ssh连接()。在某个时候,它可能会发生,我会被提示输入密码,或者我可能会被问到是否确定我想要连接(违规密钥)。 在有人问之前:是的,我知道有一个ssh2 exec调用插件,但是我正在使用的服务器不支持它,也不太可能这样做。 以下是我迄今为止所尝试的: 然后我尝试读取控制台输出(),查看下一步必须传递
本文向大家介绍交互式Vim教程(例如vimtutor),包括了交互式Vim教程(例如vimtutor)的使用技巧和注意事项,需要的朋友参考一下 示例 vimtutor 是一个交互式教程,涵盖了文本编辑的最基本方面。 在类似UNIX的系统上,可以使用以下内容开始本教程: 在Windows上,可以在Windows菜单中“所有程序”下的“ Vim 7.x”目录中找到“ Vim tutor”。 有关:he
我正在开发一个交互式排序应用程序。我必须将数字表示为矩形,并且例如,当排序算法运行时,当两个数字互换时,矩形必须互换。我想用动画来做这件事。我如何交换矩形?我目前正在使用transition测试这个功能,但我遇到了一些问题。我有两个矩形在一组。当我尝试交换矩形时,两者会在中间相遇并停止。代码如下: 我需要一个类似于帆布的窗格。我需要能够设置矩形坐标。
本文向大家介绍Ruby使用Monkey Patch猴子补丁方式进行程序开发的示例,包括了Ruby使用Monkey Patch猴子补丁方式进行程序开发的示例的使用技巧和注意事项,需要的朋友参考一下 猴子补丁(Monkey Patch)是一种特殊的编程技巧。Monkey patch 可以用来在运行时动态地修改(扩展)类或模块。我们可以通过添加 Monkey Patch 来修改不满足自己需求的第三方库,
本文向大家介绍python交互式图形编程实例(三),包括了python交互式图形编程实例(三)的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python交互式图形编程实例的第三部代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍python交互式图形编程实例(二),包括了python交互式图形编程实例(二)的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python交互式图形编程的第二部分代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。