ホーム > 環境・ユーティリティ > ksh

ksh: KornShell の使い方

KornShell (ksh) は、Unix 系オペレーティングシステムで使用される強力なコマンドラインインタープリタおよびスクリプト言語です。1980年代初頭に David Korn によって開発され、Bourne Shell (sh) との互換性を保ちつつ、C Shell (csh) の便利な機能(コマンド履歴、エイリアスなど)を統合して改善された機能を提供します。POSIX 標準に準拠しており、移植性に優れ、複雑なシェルスクリプティングに特に役立ちます。

概要

ksh は、強力なスクリプティング機能と対話型シェル環境を提供します。特にエンタープライズ環境では、その安定性とパフォーマンスから広く使用されており、現代の Linux システムでも依然として重要なシェルの一つです。

主な特徴

  • POSIX 標準への完全準拠
  • 高度なスクリプティング機能(配列、連想配列、関数など)
  • コマンドライン編集および履歴機能(vi/emacs モード対応)
  • パフォーマンス最適化と安定性
  • Bourne Shell (sh) との高い互換性

主なオプション

ksh コマンド自体は、シェルの動作を制御するためのいくつかのオプションを持っています。これらのオプションは、主にシェルを起動したり、スクリプトを実行したりする際に使用されます。

実行モード

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`ksh` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

ksh を使用するさまざまな方法を示す例です。

対話型 KornShell の起動

ksh

ターミナルで ksh を実行して、対話型シェルセッションを開始します。

KornShell スクリプトの実行

ksh myscript.ksh

ksh で書かれたスクリプトファイル(例: myscript.ksh)を実行します。スクリプトファイルの最初の行に `#!/bin/ksh` のようなシェバン(shebang)が指定されている場合は、直接実行することも可能です。

単一コマンドの実行

ksh -c "echo 'Hello from KornShell!'"

-c オプションを使用して、ksh で特定のコマンドを実行し、すぐに終了します。

標準入力からのスクリプト実行

echo 'ls -l' | ksh -s

パイプを介して渡されたコマンドを ksh で実行します。

インストール

ksh は多くの Linux ディストリビューションにデフォルトで含まれているか、簡単にインストールできます。以下は、主要なディストリビューションでのインストール方法です。

Debian/Ubuntu

sudo apt update
sudo apt install ksh

apt パッケージマネージャーを使用して ksh をインストールします。

CentOS/RHEL/Fedora

sudo yum install ksh
# または
sudo dnf install ksh

yum または dnf パッケージマネージャーを使用して ksh をインストールします。

ヒントと注意点

ksh をより効率的に使用するためのヒントと注意点です。

スクリプトのシェバン (Shebang)

ksh スクリプトファイルの最初の行に `#!/bin/ksh` または `#!/usr/bin/ksh` を追加することで、そのスクリプトが ksh で実行されるように明示できます。

  • スクリプトの先頭に `#!/bin/ksh` または `#!/usr/bin/ksh` を追加
  • スクリプトに実行権限を付与: `chmod +x your_script.ksh`

コマンドライン編集モード

ksh は vi または emacs スタイルのコマンドライン編集モードをサポートしています。`set -o` コマンドで変更できます。

  • vi モードの有効化: `set -o vi`
  • emacs モードの有効化: `set -o emacs`

デフォルトシェルの変更

chsh -s /bin/ksh

chsh コマンドを使用して、現在のユーザーのデフォルトログインシェルを ksh に変更できます。変更後は、再度ログインする必要があります。

POSIX 互換性

ksh は POSIX 標準を厳密に遵守しているため、ksh で書かれたスクリプトは他の POSIX 互換シェル(例: bash の POSIX モード)でも動作する可能性が高いです。


同じカテゴリのコマンド