トップ 一覧 置換 検索 ヘルプ RSS ログイン

シェルの比較の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
参考
http://www2u.biglobe.ne.jp/~hsaka/docs/shell.html

構文の違いで大きく分けると、 sh, ksh, bash, zsh は Bourne シェル系、 csh, tcsh は C シェル系です (zsh は C シェル系の構文もサポートしています)。これら以外にも多くのシェルやシェルもどきがあります。

:sh - Bourne シェル, POSIX シェル:
sh は標準のシェルであり、 POSIX(IEEE Std1003.2) で標準化されていますが、 全てのシステムの sh で完全に POSIX 対応しているわけではありません。 対話機能が貧弱なため、ログインシェルとして使用されることは少なく 主にスクリプトとして使用されています (システムがハングした後の再起動時に fsck が失敗したりすると /bin/sh で作業する必要があったりもしますが)。 FreeBSD などでは ash と呼ばれる機能強化したものが使用されています。 ksh や bash が /bin/sh として使われているシステムもあります。

:ksh - Korn シェル:
Bourne シェルを元に機能拡張したシェル。 ヒストリ機能やコマンドライン編集機能が追加されています。 SystemV 系では標準であり商用ですが、 パブリックドメインの pdksh もあります。

:bash - Bourne Again SHell:
Bourne シェルを元に機能拡張したシェル。 コマンドラインでの編集機能が充実しており、 ksh とはよく似ています。 GNU のソフトとして配布されており、 特に Linux で標準シェルとして採用されていることで広まっています。

:zsh - Z シェル:
最強をうたったシェル。 Bourne シェル系の構文が基本ですが、 C シェル系の構文もサポートしています。 ksh, bash のほとんどの機能に加えて プログラマブル補完機能や独自のファイル名展開機能を持っています。

:csh - C シェル:
BSD UNIX で採用されたシェル。 C 言語風の構文を持ち、 初めてヒストリ機能やエイリアス機能が導入されたシェルですが、 スクリプト言語としては Bourne シェル系より劣っています。 デフォルトのログインシェルとして設定されているシステムも 多いものの現在では使用されなくなりつつあります。

:tcsh - TENEX C シュル:
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 では対応しているものもある 

{{category2 OS,Linux}}