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