当前位置: 首页 > news >正文

Rubish:纯 Ruby 编写的 UNIX shell,深度集成 Ruby 且功能强大!

导航菜单

可进行切换导航、登录、外观设置等操作。平台方面,有 AI 代码创作,如 GitHub Copilot 借助 AI 编写更优质代码等;开发者工作流,像 Actions 自动化任何工作流等;应用程序安全,包括 GitHub Advanced Security 发现并修复漏洞等;探索方面,有为何选择 GitHub 等内容。还有解决方案,按公司规模划分有企业版等,按用例划分有应用现代化等,按行业划分有医疗保健等。资源方面,按主题探索有 AI 等,按类型探索有客户案例等,还有支持与服务相关内容。开源部分有社区、项目、仓库等。企业版有企业解决方案和可用附加组件。此外还有定价等内容。

amatsuda/rubish 仓库

该仓库有通知、分支、星标等信息,还有代码、问题、拉取请求等额外导航选项。主分支可进行分支和标签操作,能转到文件查看代码。文件夹和文件有相关展示,最新提交有 544 次提交记录。

Rubish 介绍

Rubish 是一款用纯 Ruby 编写的 UNIX shell,shell 语法会被解析并编译成 Ruby 代码,然后由 Ruby 虚拟机执行。它具有完全兼容 Bash 的特点,支持 bash 的所有功能,shell 语法完全兼容,可直接运行现有的 bash 脚本,若有无法运行的情况可视为 bug 反馈。还深度集成 Ruby,能在 shell 脚本中无缝混合使用 shell 命令和 Ruby 代码。

Rubish 安装与使用

安装方面,在 macOS 可通过 Homebrew 安装,也可从源代码安装。使用方法有启动交互式 shell、运行单个命令、运行脚本,甚至可将其设置为登录 shell。

Rubish 超越 Bash 的特性

有 Ruby 条件语句,在相关语句中可用 Ruby 表达式作为条件;Ruby 方法调用风格,可使用 Ruby 方法调用语法;方法链式调用,可将命令与 Ruby 方法链式调用;Ruby 迭代器代码块,可逐行处理命令输出;内联 Ruby 求值,以大写字母开头的行可直接作为 Ruby 代码求值;Ruby 数组和正则表达式字面量,可在 shell 上下文中直接使用;Lambda 表达式,可执行 Ruby 代码;Ruby 风格的函数定义,支持 Ruby 风格的语法;自定义 Ruby 提示符,可将提示符定义为 Ruby 函数;懒加载,可推迟缓慢的 shell 初始化操作;受限模式,运行 rubish -r 可禁用所有 Ruby 集成功能;zsh 兼容性,支持 zsh 风格的特性。

Rubish 配置文件

登录 shell 按顺序加载 /etc/profile 等文件;交互式 shell 加载 ~/.config/rubish/config 等文件;注销时加载 ~/.config/rubish/logout 等文件。

在 Ruby 程序中嵌入 Rubish

Rubish 提供公共 API,其他 Ruby 程序可在进程内驱动 Rubish 会话,同级的 Echoes 终端模拟器就使用了该功能。

自定义 I/O 后端

默认的 Rubish::Frontend::Tty 包装了 Reline 和标准输入/输出,拥有自己行编辑器的宿主程序可继承 Rubish::Frontend::Base 类并传递实例给 REPL。

子进程预执行钩子

可在 fork() 和 exec() 之间的每个分叉子进程中运行设置代码。

内置命令

有目录类的 cd 等命令,I/O 类的 echo 等命令,变量类的 export 等命令,进程类的 exit 等命令,作业控制类的 jobs 等命令,函数类的 function 等命令,别名类的 alias 等命令,历史记录类的 history 等命令,执行类的 eval 等命令,测试类的 test 等命令,控制类的 break 等命令,补全类的 complete 等命令,配置类的 shopt 等命令,信息类的 help 等命令,其他类的 true 等命令。

开发与贡献

开发可通过 bundle install 和 bundle exec rake test 进行。欢迎在 GitHub 上提交 bug 报告和拉取请求。

许可证与关于

许可证为 MIT,关于部分未提供描述、网站或主题。

资源与其他信息

包括 README、许可证等资源。还有星标、关注者、分支等信息,以及语言占比等情况。页脚有相关导航,如条款、隐私等内容,此时可能无法执行某些操作。

http://www.jsqmd.com/news/876500/

相关文章:

  • 2026年5月海南财税公司推荐,代理记账哪家好,乱账整理、注册公司代办高性价比优选权威测评 - 品牌智鉴榜
  • MacType终极指南:5个简单步骤让Windows字体渲染媲美macOS
  • 数字主权还是数字枷锁?德国eIDAS钱包的Apple/Google账户依赖之困
  • 如何用Python自动化工具提升大麦网抢票成功率:5个实战技巧
  • K210开发板固件烧录终极指南:kflash_gui完全使用手册
  • Android APP通信协议逆向:AES+Base64+Protobuf加密还原实战
  • 终于让我找到了小红书流量密码!点赞34,收藏14,我却被封号了:小红书最狠的封号逻辑,根本不看图
  • Ubuntu 22.04上从零安装UCSF DOCK 6.11:手把手解决依赖与编译的那些坑
  • TinyML安全实战:从硬件攻击到模型防护的嵌入式AI安全指南
  • 12全排列 II 回溯
  • GetQzonehistory:三步永久保存QQ空间记忆的免费数据迁移工具
  • 如何高效提取Wallpaper Engine资源?RePKG专业工具全解析
  • 基于支持点样本分割与双重机器学习的高维因果推断实践
  • 高效音频解密利器:qmc-decoder深度解析与应用指南
  • abc459_d Adjacent Distinct String 的一种构造方法
  • 11全排列 回溯
  • Postman 401错误排查:Bearer Token认证填法与工程化实践
  • 抖音批量下载器终极指南:如何3分钟搞定无损音乐提取与高效素材管理
  • 30+平台一键文档下载:告别繁琐流程,实现“所见即所得“的自由
  • 2026年免费降AI/AIGC率保姆级教程:3款亲测好用不踩雷的降AI工具 - 降AI实验室
  • 如果你要设计一个“个人助理“Agent,记忆系统应该如何分层?
  • 如何快速配置Atmosphere破解系统:Switch游戏体验全面升级指南
  • 微信小程序逆向:基于Frida Hook WeChatAppHost.dll解密wxapkg
  • SHAP值在时间感知研究中的应用:从机器学习预测到认知机制解释
  • 终极解决方案:如何彻底解决Reloaded-II模组加载器的依赖循环与下载死锁问题
  • 超参数调优中的评估偏差:数据泄露如何导致模型性能误判
  • 火眼取证+雷电模拟器深度联调实战指南
  • 宜春2026最新黄金回收本地口碑商家榜:黄金首饰+白银+铂金+彩金回收门店及联系方式推荐 - 前途无量YY
  • 终极Windows进程内存操控指南:Xenos DLL注入器深度实战解析
  • runc符号链接挂载漏洞导致容器逃逸的原理与实战防护