ksh
From NetBSD Wiki
The Korn shell, or ksh(1), is an extended version of the bourne shell (see sh). The NetBSD version of ksh is actually pdksh, the public domain korn shell [1]. This shell is also described in the POSIX specification and thus one can assume it is available on any POSIX-compatible system and behaves the same on each.
The extensions it adds to the bourne shell include:
- More advanced "globbing" (aka wildcard expansion)
- Better history browsing and command line editing (vi mode and emacs modes are available)
One point of criticism is that it has only one startup "rc" file: the .profile file. It also supports reading a startup file dependent on the value of the ENV environment variable. The disadvantage of this is that there is no (easy) way to provide ksh-specific startup files (optionally with syntax that other shells don't understand) and no way to load different initialization files depending on the mode of operation (interactive/login/noninteractive).
