Sshy:Mac OSX上使用Ruby实现简易SSH服务器连接工具

需积分: 5 0 下载量 20 浏览量 更新于2024-11-24 收藏 7KB ZIP 举报
资源摘要信息:"sshy是一个Ruby开发的命令行工具,旨在简化用户连接SSH服务器的过程。它允许用户无需记忆每个服务器的名称或IP地址,便能够轻松地连接到配置好的服务器。sshy特别为Mac OSX用户设计,与iTerm2这一终端模拟器兼容性良好。使用sshy时,用户只需执行一个简单的命令,就可以看到一个服务器列表,并通过简单的选择来建立连接。为了使用sshy,用户需要首先安装iTerm2,并且在该软件的首选项中更改URL方案,以便能够识别SSH的URL。接着,用户需要通过Ruby的包管理器Gem来安装sshy,可以通过将其添加到项目依赖中,或作为独立的gem包进行安装。安装完成后,用户可以运行sshy命令并从显示的服务器列表中选择一个服务器来连接。此外,sshy还提供了一些额外的功能,比如在用户输入时自动搜索服务器,以及在输入TAB键时显示服务器的详细信息等。如果SSH连接失败,sshy会返回错误消息,帮助用户快速定位问题。sshy还能够自动检测操作系统是否支持SSH协议的URL方案。最后,sshy项目鼓励社区贡献,用户可以通过分叉项目(fork)和创建功能分支(feature branch)的方式来改进程序。" 知识点: 1. SSH(Secure Shell)基础:SSH是一种网络协议,用于安全地访问远程服务器。它通过加密的方式提供安全的远程登录和其他网络服务。 2. iTerm2终端模拟器:iTerm2是Mac OSX平台上的一个终端模拟器,提供比系统自带Terminal更为强大的功能和更好的用户体验。 3. URL方案和SSH协议:URL方案用于标识特定的应用程序协议或服务,sshy通过识别ssh://的URL方案来帮助用户快速连接到SSH服务器。 4. Ruby语言和Gem包管理器:Ruby是一种编程语言,而Gem是Ruby的包管理器,用于安装、管理和发布Ruby程序。sshy项目作为Ruby Gem发布,可以通过gem命令或Gemfile进行安装。 5. macOS环境下的配置:为了与sshy协作,Mac用户需要在iTerm2的首选项中配置URL方案,将ssh://作为可识别的URL方案。 6. Gemfile和Bundler工具:Gemfile是用于声明项目依赖的Ruby文件,而Bundler是一个管理这些依赖的gem包的工具。用户可以通过在Gemfile中添加sshy依赖并执行bundle命令来安装sshy。 7. 命令行工具的使用:sshy作为一个命令行工具,要求用户在终端中运行命令来使用其功能。sshy的用法显示了如何通过命令行接口来与程序交互。 8. 错误处理和自动搜索功能:sshy在遇到连接失败时能够返回错误消息,并支持在用户输入时自动搜索服务器名称,这有助于提升用户体验。 9. 社区贡献和版本控制:sshy项目鼓励社区成员通过分叉(fork)和创建功能分支(feature branch)来进行贡献,这是开源项目常见的合作方式。这同时也涉及了版本控制的概念,特别是Git版本控制系统的基础知识。 10. 操作系统兼容性检测:sshy能够自动检测操作系统是否支持SSH协议的URL方案,这涉及到了解不同操作系统中的协议支持情况及其差异。

if (keyWord.equals("GMCYC") && field.equals("company_industry.S_CODE")) {//国民经济行业分类 JSONObject fieldObj = new JSONObject().put("value", "nei"); addOperateObj = new JSONObject().put("term", new JSONObject().put(subFields[0] + "." + "S_TYPE", fieldObj)); } else if (keyWord.equals("ZXCYC") && field.equals("company_industry.S_CODE")) {//战新行业分类 JSONObject fieldObj = new JSONObject().put("value", "sei"); addOperateObj = new JSONObject().put("term", new JSONObject().put(subFields[0] + "." + "S_TYPE", fieldObj)); } else if (keyWord.equals("RMSD") && field.equals("company_industry.S_CODE")) {//热门赛道 JSONObject fieldObj = new JSONObject().put("value", "hotfield"); addOperateObj = new JSONObject().put("term", new JSONObject().put(subFields[0] + "." + "S_TYPE", fieldObj)); } else if (keyWord.equals("KCCY") && field.equals("company_industry.S_CODE")) {//科创产业 JSONObject fieldObj = new JSONObject().put("value", "kechuang"); addOperateObj = new JSONObject().put("term", new JSONObject().put(subFields[0] + "." + "S_TYPE", fieldObj)); } else if (keyWord.equals("MJCY") && field.equals("company_industry.S_CODE")) {//密集产业 JSONObject fieldObj = new JSONObject().put("value", "intensive"); addOperateObj = new JSONObject().put("term", new JSONObject().put(subFields[0] + "." + "S_TYPE", fieldObj)); } else if (keyWord.equals("SSHY") && field.equals("company_industry.S_CODE")) {//上市行业 JSONObject fieldObj = new JSONObject().put("value", "csrc"); addOperateObj = new JSONObject().put("term", new JSONObject().put(subFields[0] + "." + "S_TYPE", fieldObj)); }按照阿里的开发规范优化代码

2023-06-03 上传