I’m looking for Linux ports of historic Bourne shell versions (other than the Heirloom shell, which implements the SVR4/SVID3 level of the shell). For curiosity and research, I want to dig into the internals of historic shell code.
Specifically: I’m looking for historic versions of the Bourne shell that have been ported to Linux. I’m not looking for modern reimplementations, “Bourne Compatible shells”, “Bourne Again shell”, “C-shell/T-C-shell”, or “Korn shell”.
I hate answering with just a link to Wikipedia, but see Bourne-compatible shells which does list
dash which were the first two to come to mind for me (that weren’t
GNU Bash is very popular. It is complete, in fact highly extended, and also kind of big and slow, although I’m not sure you would notice on today’s zippy CPUs.
ash is the native BSD shell. It is smaller, faster, and often installed as /bin/sh even on linux in order to make generic shell scripts run fast. It’s a perfectly decent interactive shell EXCEPT that on many linux distros, it is considered non-interactive (the developers probably all use bash) and so the build is deliberately crippled in order to make it even smaller. If you use it interactively, build it from source.
ksh and zsh are older enhanced shells.
csh is ancient and non-posix, and it won’t run most shell command files. It is almost always installed out-of-the-box, though, and it might provide some amusement. In particular the ! history substitution, available in bash, was invented here and is kind of neat.
GNU Bash is a very well-known and frequently used Bourne shell.
It is pre-Bourne, but you might be interested in the Sixth Edition Thompson shell.