KornShell

From Wikipedia, the free encyclopedia

KornShell(コーンシェル、ksh)は、Unixシェルの一種であり、1980年代初期にベル研究所デビッド・コーン英語版が開発し、1983年7月14日のUSENIX年次大会で発表した[1][2]。初期にはベル研究所の開発者マイク・ヴィーチとパット・サリヴァンも開発に関わり、それぞれ入力行編集モードのEmacsスタイルとviスタイルのコードを書いた[4]Bourne Shellに対して完全上位互換であり、コマンド履歴などのC Shellの機能の多くも取り入れている。彼はベル研究所内のユーザーの要望を受けてkshを開発したと言われている。

作者 デビッド・コーン英語版
初版 1983年[1][2]
最新版
ksh93u+ / 2012年8月1日 (13年前) (2012-08-01)[3]
プログラミング
言語
C
概要 作者, 初版 ...
KornShell
作者 デビッド・コーン英語版
初版 1983年[1][2]
最新版
ksh93u+ / 2012年8月1日 (13年前) (2012-08-01)[3]
プログラミング
言語
C
対応OS クロスプラットフォーム
プラットフォーム UNIX
サポート状況 活発
種別 Unixシェル
ライセンス Common Public License (AT&T KornShell), 多くはパブリックドメインで一部はGPL (pdksh), プロプライエタリ (dtksh)
公式サイト www.kornshell.org
テンプレートを表示
閉じる

設計

KornShellは、POSIX.2 Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992) に準拠している。

従来のBourne shellとKornShellとの主な違いは次の通りである。

  • ジョブコントロール英語版コマンド・エイリアシングコマンド履歴英語版といったC Shell由来の機能が追加されている。
  • 対話モードで使用する場合、kshはコマンド行をWYSIWYG風の方法で編集することができる。カーソルを上に移動させるキー操作で以前入力したコマンド行を呼び出し、そのコマンド行をラインモードエディタを使うように編集できる。このときのキー操作はvi互換モードemacs互換モードとXEmacs互換モードを選択できる。
  • ksh93 では、連想配列浮動小数点数演算機能が組み込まれている。

歴史

2000年まで、KornShellはAT&Tの権利保有するプロプライエタリソフトウェアであった。その後AT&T独自のライセンスの下でオープンソースとなり、2005年の 93q から Common Public License での配布となった。KornShellはAT&T Software Technology (AST) Open Source Software Collectionの一部として入手可能である。ks は当初AT&Tの商用ライセンスでしか入手できなかったため、オープンソースの代替実装がいくつも生まれた。その中には、パブリックドメインのpdkshmkshGNUプロジェクトbashzshなどが含まれる。

最初のKornShellであるksh88の機能がPOSIX.2 Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992) の元になっている。

ベンダーによっては古いksh88/bin/kshとしていまだに使っているところもあり、独自に拡張している場合もある。ksh93は作者であるコーンがいまだに保守している。ksh93の後ろにアルファベット1文字をつけてバージョンを表しており、最新版はksh93u+である。その1つ前はksh93u、さらに前はksh93t+だった。バグ修正用の中間バージョンはこのバージョン文字列を変更せずにリリースされることもある[5]

デスクトップ用KornShellとされるdtkshCDEの一部として配布されたksh93である[6]。このバージョンではMotifウィジェットのシェルレベルでのマッピングを提供しており、Tcl/Tkとの対抗を意図していた[7]

最初のKornShellである ksh88 は、AIXバージョン4からAIXのデフォルトのシェルとされており[8][9]、ksh93はそれとは別に用意されている[10]

派生

KornShellからの派生ソフトウェアを以下に示す。

  • dtkshksh93からのフォーク。CDEの一部。
  • tkshksh93からのフォーク。Tkウィジェット・ツールキットへのアクセスを提供。
  • okshOpenBSD版KornShellのフォーク。GNU/Linuxでのみ動作。DeLi Linux英語版でデフォルトのシェルとして使われている。
  • mksh — KornShellの自由ソフトウェア実装。MirOS BSD英語版で開発。
  • SKshAmigaOS版KornShell。ARexx英語版との相互作用などAmiga固有の機能を提供している。
  • MKS Korn shell — MKS社による商用実装。Microsoft Windows Services for UNIX (SFU) のバージョン2.0までで使われていた。デビッド・コーンによれば、1998年時点のMKS Korn ShellはKornShellと完全互換ではなかった[11][12]。SFUバージョン3.0でマイクロソフトはMKS Korn shellの代替として新たにPOSIX.2準拠のシェルをInterixの一部として導入した[13]
  • デビッド・コーンが開発したUWIN英語版はWindows上のUNIX互換パッケージで、KornShellも含まれている[14]

脚注

私考文献

外部リンク

Related Articles

Wikiwand AI