Z shell(ズィーシェル、zsh)は、Unixのコマンドシェルの1つである。対話的なログインコマンドシェルとしても、強力なシェルスクリプトコマンドのインタープリターとしても使うことができる。

zsh は数多くの改良を含んだBourne Shellの拡張版という見方もできる。のみならず、bashやksh、tcshの非常に有用な機能も一部取り込まれている。macOSではシステムシェルとしてはBashが採用され続けているもののmacOS 10.15 Catalinaからユーザーが使用するシェルのデフォルトとしてzshが採用されている。また、Windows上でネイティブUnix環境を提供する Interix サブシステム上ではUnix版のソースコードをビルドしてWindows上で使用することができる。

起源 zsh の最初のバージョンは、1990年 に、当時 プリンストン大学の学生であったポール・ファルスタッドによって作成された。 zsh の名前は、当時プリンストン大学のティーチングアシスタントであったイェール大学教授 Zhong Shao のログイン名 "zsh" に由来して名付けられた。

コミュニティ

「Oh My Zsh」というコミュニティウェブサイトは、Z shell向けのサードパーティ製プラグインとテーマを収集している。2024年現在、GitHubリポジトリには2,300人以上のコントリビューター、300以上のプラグイン、140以上のテーマが集まっている。また、インストール済みのプラグインやテーマの更新を容易にする自動アップデートツールも備えている。

統合フレームワークに加えて、独立系コミュニティ組織であるzsh-usersはGitHub上で広く使われている複数の独立した拡張機能をホストしている。これには、高度なタブ補完定義を提供するzsh-completions、 コマンドラインのリアルタイム構文ハイライトを行うzsh-syntax-highlighting、 そして履歴に基づくコマンド候補を表示するzsh-autosuggestionsが含まれる。 同組織は、Zsh向けの初期に人気を博したプラグインマネージャーの一つであるAntigenも開発した。 さらにコミュニティは、実行速度に重点を置いた高パフォーマンスフレームワークZim(zimfw)や、 外部プラグインマネージャーに依存せず内部設定構造を最適化するモジュール型設定システムVeil(veil.zsh)など、 代替設定マネージャーによってZ shellのエコシステムを活発に拡大している。

特徴 zsh の特徴として次のようなことが挙げられる。

プログラム可能な補完機能によって、多くのユーザーコマンドのオプションや引数を打つのを支援する(インストールの時点で数百のコマンドをサポートしている)。 ユーザーの起動している全ての zsh でコマンド履歴を共有することができる。 拡張ファイル名生成(ワイルドカード展開)によって find のような外部コマンドを呼び出さないで、ファイル名を展開する。 変数や配列の処理が改善されている。 複数行コマンドをバッファーで編集できる。 綴り字修正機能 様々な互換モードがある。例えば、zshを/bin/shとして実行したとき、Bourne Shellの振りをするようにできる。 プロンプトテーマ 端末の右端に情報を表示し長いコマンドを打っているときは自動的に隠れる右プロンプトを表示できる。 ほとんど全部のカスタマイズが可能。

このシェル全体のサイズが巨大であることは、マニュアルページの最初の有名なこの一文 「zshは多くの機能を持っているので、マニュアルは幾つかのセクションに分かれています。」 と、 17 個のセクション名のリストからも良く分かるだろう。

脚注

外部リンク

ZSH - THE Z SHELL

究極のシェル「zsh」を知る(その1) 究極のシェル「zsh」を知る(その2) 漢のzsh zshで究極のオペレーションを

カテゴリ:Unixシェル

カテゴリ:スクリプト言語