Shell landscape
Companion to keybindings comparison. Not a popularity contest — a map for practitioners choosing or integrating shells.
Categories
POSIX / word languages
| Shell | Pipe currency | Notes |
|---|---|---|
sh / dash |
Byte streams, exit codes |
Minimal scripting; often |
bash |
Byte streams + |
Default on many Linux distros; rich history/editing |
zsh |
Like bash + globbing, modules |
macOS default since Catalina |
fish |
Byte streams; structured autosuggest |
Friendly defaults; not POSIX by default |
Structured / object pipelines
| Shell | Pipe currency | Notes |
|---|---|---|
Nushell |
Typed tables/records |
Unix-centric structured shell — OSO reference implementation |
PowerShell |
.NET objects |
Windows-native; cross-platform pwsh |
Open Shell ( |
Default |
Dlang runtime — Open Shell, display layers |
Comparison axes
Use these when keybindings or architecture docs refer to "kinds" of shell:
| Axis | Question |
|---|---|
Pipe currency |
Bytes, text lines, objects, or typed tables? |
Context model |
cwd-only vs session env vs explicit context tokens |
Presentation |
stdout-only vs layered overlays |
Syntax modes |
Single parser vs swappable (Open Shell UNIX vs structured) |
Help surface |
man vs |
OSO stance
-
Recommend Nushell for structured pipelines — thesis
-
Open Shell in D — default OSO mode; Nushell as
numode baseline; contribute upstream when generic -
Certify CLIs via SOS regardless of host shell