Description - V6 Thompson Shell Ports

The Osh Project provides two ports of the original /bin/sh from Sixth Edition (V6) UNIX (circa 1975). I, , develop and maintain this project. I sign releases with the detached signature declared on my Signature Key page.

Osh(1) is an enhanced, backward-compatible port of the Sixth Edition Thompson shell. Sh6(1) is an unenhanced port of the shell, and glob(1) is a port of its global command. Together, sh6 and glob provide a user interface which is backward compatible with that provided by the Sixth Edition Thompson shell and global command, but without the obvious enhancements found in osh.

The original Thompson shell was principally written by Ken Thompson of Bell Labs.

Additionally, this project includes the following shell utilities:

The looptest utility is packaged separately. It provides a simple way to script count-controlled shell loops.

For those interested in UNIX history, this link list may prove useful.


Sources contains the latest official release of osh (see below), older releases, and osh-current development (information & downloads).

Please contact me if you have any comments or questions about this software. Bug reports are certainly welcome, but please try upgrading to the latest official release before reporting any bug as it may have already been fixed.

Osh is also included as shells/osh in FreeBSD Ports, as shells/osh in MacPorts, as shells/osh in NetBSD pkgsrc, and as shells/osh in OpenBSD Ports.


The Thompson shell's command language is a predecessor and subset of that found in the Bourne shell and C shell. The Thompson shell's external utilities complement the basic functionality of its command language. Since the Thompson shell initially set the stage for basic UNIX-shell functionality, all modern UNIX shells still have a great deal in common with it.

The Thompson shell supports command pipelines (constructed with | or ^), both sequential commands (;) and asynchronous commands (&), I/O redirection (<, >, >>), globbing (*, ?, [...]), and parameter substitution ($1, $2, $3) among other things.

The NOTES file contains further information about these ports of the shell. In addition, here are some example shell scripts (aka command files) which may help to illustrate some of their capabilities. Last but not least, here are some example rc files which may help the user wishing to use osh interactively to better understand how to configure the shell and its environment.