OpenBSD's ksh for OS X

This project is no longer maintained. Consider oksh instead.


The latest package is ksh-openbsd-0.03.tar.gz. (MD5 checksum: b8676a21fa3e3e98e667c3bd368d4d18 )


What is it?

ksh-openbsd is a port of the default Korn shell available in OpenBSD. It should compile cleanly on most UNIX-based operating systems, though it was specifically intended to run under Apple OS X.

Why port it?

I wasn't satisfied with the default bash shell in the OS X Terminal application. I tried installing pdksh, which OpenBSD used as the basis for their shell, but it wasn't the same. The OpenBSD developers had changed the way pdksh worked for their operating system.

pdksh already supports most of the functionality of OpenBSD's ksh, but I wasn't happy with the way it worked. In order to run pdksh with tab completion, you must place the following lines in your ~/.profile file:

set -o vi
set -o vi-tabcomplete

Doing this will render the shell unable to list earlier-typed commands by pressing the up- and down-arrow keys. To get this feature, you need to put this line into your ~/.profile file:

set -o emacs

Worse, set -o emacs and set -o vi are incompatible settings: you cannot have them both set at the same time. And set -o emacs doesn't support tab completion! All of this broken behavior was frustrating, and I hadn't even found a good way to display completions, if there were multiple possibiliites, when I pressed the tab key.

I wanted all of the features and convenience that OpenBSD's ksh had, but I couldn't reproduce it with a stock install of pdksh. The only solution was to port OpenBSD's ksh to OS X.