KornShell(ksh)とは何か
UNIX系OSを利用するのに避けて通れないのがシェルです。Linuxなどではbash(Bourne-Again Shell)が標準で使われていますが、これは様々なシェルの祖先となるsh(Bourne Shell)の機能強化版と考えていいかと思います。
KornShellも、そのようなUNIX系OSで利用できるシェルのひとつですが、近年標準で採用されていることは多くない模様です。今回は、そんなKornShellを使ってみよう、という記事です。
きっかけ
個人的な動機に簡単に触れておきます。某中古書店でオライリーのKornShell解説本が格安で売られており、これを手に取ったのが直接のきっかけです。オライリーからはbashやtcsh/cshの解説本も出ていますが、KornShell解説本も出ていたのは知らなかったので購入して通読しました。
shやbashとの関係
非常にざっくりした認識ですが、昨日の豊富さという意味では、下のような感じの認識でよいのではないでしょうか。
sh < ksh < bash
bashほど高機能ではないにせよ、普通に対話的に利用できる程度の機能は備わっている感じがします。また、csh/tcshのようにbash系(?)と大幅に流儀が違うような感じもないので、その点もとっつきやすいです。
kshのバリエーション
ややこしいことに、kshは当初プロプライエタリなライセンスであったことなどから、複数の実装が存在します。
ksh
元祖版です。David Kornが開発しています。当初プロプライエタリでしたが、2000年代に入ってからオープンソースになりました。
pdksh
パブリックドメインのKornShell実装です。
mksh
MirOS BSDなるBSD系のOSのために開発された実装です。DebianやUbuntuなどではaptを用いて導入することができます。
とりあえず試してみる
現在のLinuxディストリビューションでデフォルトのシェルになっていることはほとんどないのではないかと思いますが、公式レポジトリに含まれていることが多いため、パッケージ管理で導入し、とりあえず試してみることができます。常用するのはともかく、歴史的な観点などからも興味深いかと思います。