一个更智能的 cd 命令,记住常用目录,几个按键即可跳转,支持主流 shell。
oils-for-unix/oils
Oils 是兼容 bash 的 OSH 解释器与面向 Python/JavaScript 用户的新 shell 语言 YSH。
- Star
- 3,400
- Fork
- 194
- 未关闭 Issue
- 610
- 最近提交
- 4天前
这是什么?
Oils 是从 bash 迁移到更好的语言和运行时的一条路径。它包含 OSH,用于运行现有的 shell 脚本;以及 YSH,一种面向 Python 和 JavaScript 用户、希望避免传统 shell 语法的新 shell 语言。
项目主体用 Python 编写,代码简短,便于修改。通过自研工具将其翻译为 C++,生成体积小、速度快的可执行文件,运行时不依赖 Python。
本仓库主要面向贡献者。仓库提供开发版本的构建方式,可直接在 Python 下运行,并提供 wiki 和 Zulip 频道用于开发讨论。普通用户应前往官方发布页下载,而非直接克隆仓库。
核心功能
- 01通过 OSH 运行现有的 bash 风格 shell 脚本
- 02提供面向 Python 和 JavaScript 用户的新 shell 语言 YSH
- 03使用 Python 编写,便于修改和快速原型开发
- 04翻译为 C++,生成不依赖 Python 的小体积可执行文件
- 05附带用于检验 shell 兼容性的 spec 测试集
适用场景
- 在更一致的 shell 运行时中运行旧版 bash 脚本
- 用类似 Python 的语法编写 shell 自动化脚本,替代传统 shell 写法
- 通过修复未通过的 spec 测试为 shell 兼容性做贡献
快速上手
- 1
按照维基上的贡献指南构建开发版本
- 2
启动交互式 OSH shell
bin/osh - 3
用 OSH 运行一个 shell 脚本
bin/osh myscript.sh - 4
启动 YSH shell
bin/ysh
使用前须知
- 此仓库构建的是 Python 开发版,而非正式发布的二进制文件;普通用户应使用 oils.pub 上的压缩包发行版。
- 元数据中的许可证不明确(NOASSERTION)。
标签
常见问题
- oils 是什么?
- Oils 是兼容 bash 的 OSH 解释器与面向 Python/JavaScript 用户的新 shell 语言 YSH。 Oils 是从 bash 迁移到更好的语言和运行时的一条路径。它包含 OSH,用于运行现有的 shell 脚本;以及 YSH,一种面向 Python 和 JavaScript 用户、希望避免传统 shell 语法的新 shell 语言。
- oils 可以免费使用吗?用的什么许可证?
- oils 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- oils 还在维护吗?
- 活跃维护中。oils 最近一次提交是在 2026年10月18日。
- oils 适合用来做什么?
- 在更一致的 shell 运行时中运行旧版 bash 脚本 用类似 Python 的语法编写 shell 自动化脚本,替代传统 shell 写法 通过修复未通过的 spec 测试为 shell 兼容性做贡献
- oils 怎么安装和运行?
- 按照维基上的贡献指南构建开发版本 启动交互式 OSH shell: bin/osh 用 OSH 运行一个 shell 脚本: bin/osh myscript.sh 启动 YSH shell: bin/ysh
- 在哪里获取 oils?
- 源代码和安装说明在 GitHub 上:https://github.com/oils-for-unix/oils
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
4万935RustMIT更新于 4天前
通过将命令行参数匹配到 manpage 帮助文本来解释 shell 命令的网页工具与 Python 库。
1.4万854PythonGPL-3.0更新于 2个月前
面向 Bash、Zsh、Fish 等 shell 的命令模板与代码片段管理工具,像 IntelliSense 一样辅助终端输入。
129825RustApache-2.0更新于 7天前
用纯 Go 编写的 ECMAScript 5.1 JavaScript 引擎,可将 JS 执行嵌入 Go 程序。
7155497GoMIT更新于 21小时前
基于 Clang 和 LLVM 构建的交互式 C++ 解释器,提供逐行执行代码的 REPL 环境。
4201313C++Other更新于 7天前
用 Rust 编写的 Python 3 解释器,不依赖 CPython 绑定,支持 WebAssembly 与嵌入 Rust 应用。
2.2万1501RustMIT更新于 前天