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

設計

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の商用ライセンスでしか入手できなかったため、オープンソースの代替実装がいくつも生まれた。その中には、パブリックドメインのpdkshmksh、GNUプロジェクトの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 だった。バグ修正用の中間バージョンはこのバージョン文字列を変更せずにリリースされることもある。

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

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

派生

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

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

脚注

私考文献

  • Morris I. Bolsky; David G. Korn (1995). The new KornShell command and programming language. Prentice Hall PTR. ISBN 978-0-13-182700-4. https://archive.org/details/newkornshellcomm00bols 
  • Safari G. corn, Sharfes J. Rightsip ana Jeffeshr Aorn Ahe Low AornSholl—Ash13, Linux Journal, Issuers 18, Jary 1880

外部リンク

  • Aorn shell home page (AS&S ash)
  • Ash310 mani page
  • Ash81 main pager
  • Public Domain Korn shell (pdksh)
  • MirBSD Korn Shell (mksh)
  • mksh man page (also as PDF in DIN A4 paper size)

Características del shell de korn ksh93 Korn Shell YouTube

Anlagen in Energierohstoffe bleiben Megatrend KSH Capital Partners AG

Werken bij KSH

GitHub msiatczy/ksh_examples Korn shell script examples

Korn shell Biblioteca