シェル

Last update: 1999/02/27

UNIX 系 OS を使用する上で避けては通れず、 そして最強のインターフェースである(と思う)シェルのお話。 私が使っている tcsh のちょっと便利な使い方については こちら。

参考書籍

シェルの比較

各種シェルを比較してみました。 構文の違いで大きく分けると、 sh, ksh, bash, zsh は Bourne シェル系、 csh, tcsh は C シェル系です (zsh は C シェル系の構文もサポートしています)。 これら以外にも多くのシェルやシェルもどきがあります。
FreeBSD 2.2.8R での機能比較表です。
sh ksh(pkdsh) bash bash 2.0 zsh csh tcsh
バージョン (OS付属) 5.2.13 1.14.7 2.02.1 3.0.5 (OS付属) 6.08.03
エイリアス ○ ○ ○ ○ ○ ○1) ○1)
関数 ○ ○ ○ ○ ○ ×1) ×1)
構造化スクリプト ○ ○ ○ ○ ○ △ △
配列 × ○ × ○ ○ ○ ○
キーバインド × ○ ○ ○ ○ × ○
ヒストリ編集 × ○ ○ ○ ○ × ○
ライン編集 × ○ ○ ○ ○ × ○
補完 × △ ○ ○ ◎2,3) △ ◎2,4)
ファイル名展開 △ ○ ○ ○ ◎5) ○ ○6)
プロンプトカスタマイズ × × ○ ○ ○ × ○
NLSカタログ(日本語化) ×7) ×7) × × × ×7) ◎

1) csh, tcsh は関数が無いかわりエイリアスが引数をとれる
2) zsh, tcsh は強力なプログラマブル補完機能がある
3) zsh はメニュー補完機能がある
4) tcsh は補完候補の一覧が GNU-ls のようにカラー化できる
5) zsh は階層化したディレクトリに一致する `**' などある
6) tcsh は「それ以外」に一致する `^' がある
7) 商用 UNIX では対応しているものもある

どのシェルを使う?

比較表を見ると bash, zsh, tcsh から選ぶのが順当でしょう。 私の場合、学生の時 csh → tcsh と他の選択枝を知らずに移ったため tcsh を使い続けている面もあるのですが、bash や zsh を知ってからも 一応比較してみました。 その結果、まずプログラマブル補完機能 がないことで bash は選択対象から外しました(bash がサポートしたらまた考えよう)。 後は zsh か tcsh かなのですが、 tcsh が日本語(複バイト文字)をサポートしていること (参考 znc HomePage )、 参考書籍があること(zsh の専門書籍はみたことないですね)、 補完候補をカラー表示できることでやはり tcsh にしました。 スクリプト機能が貧弱なのは、sh (または perl とか)でスクリプトを 書けばいいことですし。

コラムへ戻る ホームページへ このページのトップへ 新着情報 コンピュータ
ダウンロード 用語集(索引) 用語集 プロフィール リンク

このページへのお問い合わせは hsaka@mth.biglobe.ne.jp まで御願いします。