macOS
brew install oils-for-unixlocal Homebrew formula metadata
安装
brew install oils-for-unixlocal Homebrew formula metadata
sudo apk add oils-for-unixAlpine Linux edge package indexes · oils-for-unix · 来源: dl-cdn.alpinelinux.org
nix profile install nixpkgs#oils-for-unixnixpkgs package indexes · pkgs/by-name/oi/oils-for-unix/package.nix · 来源: api.github.com
sudo pacman -S oils-for-unixArch Linux sync databases · oils-for-unix · 来源: geo.mirror.pkgbuild.com
sudo zypper install oils-for-unixopenSUSE Tumbleweed package metadata · oils-for-unix · 来源: download.opensuse.org
sudo dnf install osh-clientFedora Rawhide package metadata · osh-client · 来源: dl.fedoraproject.org
概览
Bash-compatible Unix shell with more consistent syntax and semantics
历史
Oils for Unix is a shell project that contains OSH, a POSIX/bash-compatible shell for existing scripts, and YSH, a newer shell language aimed at programmers who want shell's process orchestration with more regular syntax and data structures.
Andy Chu began Oils in 2016 as an independent project to restore and re-imagine the Unix shell. The GitHub repository was created on 2016-11-15, and Chu's resume describes the work as an independent, non-profit language-engineering project funded by NLnet from 2022 to 2026.
The project deliberately took a compatibility-first path. Chu's 2021 explanation separates POSIX shell, bash, OSH, and Oil: OSH is the implementation intended to run existing shell scripts, while Oil was the incompatible new language intended to fix decades of accumulated shell language problems. The same essay says OSH had run existing scripts since January 2018 and had matured through regular releases.
In 2023 the project renamed itself from Oil/Oil Shell to Oils for Unix, with OSH and YSH as the named subprojects. The rename clarified the difference between the compatible shell and the new shell language, provided a globally unique package and project identity, and matched the busybox-like release layout with `oils-for-unix` plus `osh` and `ysh` symlinks.
Oils has a larger footprint than the other shell packages in this batch: the GitHub API reported 3,357 stars and 193 forks for `oils-for-unix/oils`, and Homebrew's 2026-07-01 formula API reported 331 installs over 365 days. The formula also records the old Homebrew name `oil`, showing the packaging transition caused by the 2023 rename.
NLnet's project page frames Oils as an upgrade path from traditional shells like bash to a more structured language and runtime, with OSH running thousands of lines of unmodified POSIX and bash scripts and YSH offering a language influenced by Python, Ruby, JavaScript, JSON, and YAML. That external funding and packaging across Homebrew, apk, Nix, Arch, and openSUSE-style systems give Oils more than hobby-project status, even though it remains specialized.
Developers use OSH to test or run existing shell scripts under a more explicit implementation, and use YSH for new scripts where shell-like command composition is useful but bash syntax is too irregular. The README shows `bin/osh` for interactive use or for running an existing script, and `bin/ysh` for the newer language.
The implementation model matters: the source is written in Python for easier development, then translated to C++ with custom tools so released executables are fast, small, and do not depend on Python. The project asks users to consume release tarballs from `oils.pub` rather than cloning the development repository.
Oils is significant because it treats shell as both legacy infrastructure and language-design territory. Package maintainers see the practical side in the formula: one source tarball installs `oils-for-unix`, `osh`, and `ysh`, depends on readline, and conflicts with packages that also install an `osh` binary.
For shell/package historians, Oils sits at the intersection of POSIX shell compatibility, bash's network effect, language migration strategy, and distribution naming. Its rename from `oil` to `oils-for-unix` is unusually well documented and visible directly in package-manager metadata.
安全态势
generalized runtime or code generation signal.
yellow 风险 · 中 置信度 · runtime
在无人值守的代理使用前,请检查该工具是否读取明文凭据、写入远程状态、发布制品或调用插件。
可执行文件
| 命令 | 类型 | 暴露范围 | 备注 |
|---|---|---|---|
oils-for-unix | cli | 全局可执行文件 | |
osh | cli | 全局可执行文件 | |
ysh | cli | 全局可执行文件 |
新鲜度
这些信号区分页生成时间、软件包管理器活动和上游发布比较。只有存在证据 URL 和可比较版本时,才会提示版本落后。
安装元数据
| 软件包键 | brew:oils-for-unix |
|---|---|
| 版本 | 0.37.0 |
| 软件包管理器 | Homebrew |
| 软件包管理器页面 | https://formulae.brew.sh/formula/oils-for-unix |
| 主页 | https://oils.pub/ |
| 仓库 | https://github.com/oils-for-unix/oils |
| 上游文档 | https://github.com/oils-for-unix/oils#readme |
| 许可证 | Apache-2.0 |
| 源码归档 | https://oils.pub/download/oils-for-unix-0.37.0.tar.gz |
| 最后更新 | 2026-06-22T14:05:40-07:00 |
| Pulse | updated |
| 依赖 | readline |
| Bottle | 可用 (于 arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | 未定义 |
| 服务 | 未声明 |
注册表事实
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | oils-for-unix |
| Version Scheme | 0 |
| Revision | 0 |
| Conflicts With |
|
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
源数据库匹配
匹配项来自外部软件包管理器索引,并与本地 Automic Vault 软件包链接分开显示。
oils-for-unix
nix profile install nixpkgs#oils-for-unixoils-for-unix 0.37.0-r0
Unix shell with JSON-compatible structured data
sudo apk add oils-for-unixoils-for-unix-bash 0.37.0-r0
oils-for-unix as /bin/bash
sudo apk add oils-for-unix-bashoils-for-unix-binsh 0.37.0-r0
oils-for-unix as /bin/sh
sudo apk add oils-for-unix-binshoils-for-unix-doc 0.37.0-r0
Unix shell with JSON-compatible structured data (documentation)
sudo apk add oils-for-unix-docoils-for-unix 0.37.0-3
Oils for Unix: OSH and YSH shells
sudo pacman -S oils-for-unixoils-for-unix 0.37.0-1.2
A bash compatible shell and a new modern shell
sudo zypper install oils-for-unixosh-client 1.1.1-7.fc45
OpenScanHub CLI client
https://github.com/openscanhub/openscanhub/
sudo dnf install osh-clientosh-common 1.1.1-7.fc45
OpenScanHub shared files for client, hub and worker
https://github.com/openscanhub/openscanhub/
sudo dnf install osh-commonosh-hub 1.1.1-7.fc45
OpenScanHub xml-rpc interface and web application
https://github.com/openscanhub/openscanhub/
sudo dnf install osh-hubosh-hub-conf-devel 1.1.1-7.fc45
OpenScanHub hub devel configuration
https://github.com/openscanhub/openscanhub/
sudo dnf install osh-hub-conf-develosh-worker 1.1.1-7.fc45
OpenScanHub worker
https://github.com/openscanhub/openscanhub/
sudo dnf install osh-workerosh-worker-conf-devel 1.1.1-7.fc45
OpenScanHub worker devel configuration
https://github.com/openscanhub/openscanhub/
sudo dnf install osh-worker-conf-develosh-worker-manager 1.1.1-7.fc45
OpenScanHub worker manager
https://github.com/openscanhub/openscanhub/
sudo dnf install osh-worker-manager来源线索
此页面由 av-web 从 scripts/generate-pkg-sqlite.py 生成的私有软件包 SQLite 工件提供。
View the package source record on GitHub.