目次
第1章 zshにより広がる世界
- 1.1 デモンストレーション
- 1.2 なぜzshか
第2章 zshのインストールと起動
- 2.1 zshのインストール
- 2.1.1 ソースの入手とコンパイル
- 2.1.2 ログインシェルの変更
- 2.2 zshの起動
- 2.2.1 zshの初期化ファイル
- 2.2.2 起動と調整
- 2.3 サンプル設定ファイル
- 2.4 シェル変数とシェルオプション
- 2.5 コマンドライン操作の基本
- 2.5.1 コマンド起動の基本書式
- 2.5.2 コマンド前置
- 2.5.3 コマンドの検索位置
- 2.5.4 コマンド検索の制御
- 2.5.5 コマンドの終了値
- 2.6 ディレクトリ操作
- 2.6.1 cdコマンド
- 2.6.2 ディレクトリとシンボリックリンク
- 2.6.3 cdコマンドのオプション
- 2.6.4 ディレクトリスタック
- 2.6.5 ディレクトリ移動の挙動制御
第3章 ヒストリ
- 3.1 ヒストリ利用のための変数
- 3.2 ヒストリ展開制御
- 3.2.1 基本的ヒストリ展開
- 3.2.2 ヒストリ編集子
- 3.3 fcコマンド
- 3.3.1 ヒストリリストの参照
- 3.3.2 ヒストリの編集と実行
- 3.3.3 ヒストリファイルの入出力
- 3.3.4 ヒストリリストのスタック待避
- 3.4 zsh拡張ヒストリ制御オプション
第4章 コマンドライン編集
- 4.1 編集インタフェースの選択
- 4.2 標準キー割り当て
- 4.2.1 数引数
- 4.2.2 emacsキーマップの標準キー割り当て
- 4.2.3 viキーマップの標準キー割り当て
- 4.3 キーカスタマイズ
- 4.3.1 bindkeyコマンド
- 4.3.2 キーカスタマイズの例
- 4.4 プロンプトの調整
- 4.4.1 プロンプト変数で利用できる記号
- 4.4.2 プロンプト置換を制御するオプション
- 4.4.3 プロンプト設定例
- 4.4.4 プロンプトテーマ
- 4.5 その他のZLE関連コマンド
- 4.5.1 varedコマンド
- 4.5.2 zleコマンド
第5章 標準コマンドライン補完
- 5.1 zshの補完機能
- 5.1.1 2つの補完システム-compctlとcompsys
- 5.1.2 補完システムの導入
- 5.2 補完システムの利用
- 5.2.1 コマンド名補完
- 5.2.2 ファイル名補完
- 5.2.3 変数補完
- 5.2.4 ユーザ名・ホスト名補完
- 5.2.5 プロセス・ジョブ補完
- 5.2.6 その他文脈に応じた補完
- 5.2.7 文脈から独立した補完
- 5.3 補完に関するシェルオプション
- 5.4 補完スタイル
- 5.4.1 コンテクストとスタイル
- 5.4.2 コンテクスト値のセットのされ方
- 5.5 代表的なスタイル
- 5.5.1 スタイルの設定と削除
- 5.5.2 補完提示方式の変更
- 5.5.3 一覧の表示属性設定
- 5.5.4 補完のグループ化
- 5.5.5 マッチ仕様の調整
- 5.5.6 起動コマンドの変更
- 5.5.7 候補の偽造
- 5.5.8 コマンドごとのファイル検索パターンの調整
- 5.5.9 その他の主な補完スタイル
- 5.6 様々なコンプリータ
- 5.6.1 コンプリータの指定
- 5.6.2 近似補完(_approximate)
- 5.6.3 綴り修正(_correct)
- 5.6.4 単語途中の補完(_prefix)
- 5.6.5 除外パターンの復活(_ignored)
- 5.6.6 細かく制御可能な展開(_expand)
- 5.6.7 パターンを含む補完候補の選別(_match)
- 5.6.8 前回の補完の候補一覧をそのまま表示(_oldlist)
- 5.6.9 マッチするものすべての挿入(_allmatches)
- 5.6.10 エイリアスの展開(_expandalias)
- 5.6.11 ヒストリ中の単語補完(_history)
- 5.7 ラベルつきコンプリータによる多段階補完
- 5.8 補完設定の追加と削除
- 5.8.1 compdefと補完関数
- 5.8.2 compctlとの共存
- 5.8.3 基本タグ補完関数
- 5.9 補完スタイルのまとめ
第6章 変数
- 6.1 シェル変数と環境変数
- 6.2 プロセスへの環境変数渡し
- 6.3 クォート
- 6.4 値の展開
- 6.5 zshの変数の型
- 6.5.1 typesetコマンド
- 6.5.2 シェル変数と環境変数の連動
- 6.5.3 変数の属性設定
- 6.5.4 typesetコマンドのオプション
- 6.5.5 setコマンド
- 6.6 添字
- 6.7 変数展開フラグ
- 6.8 添字用変数展開フラグ
- 6.8.1 添字用展開フラグの使用例
- 6.9 変数展開制御編集子
- 6.10 変数定義の抹消
- 6.11 read
- 6.12 特殊変数
- 6.12.1 シェルが参照する変数
- 6.12.2 内部変数
第7章 ファイル名生成
- 7.1 強力なファイル名生成機能
- 7.2 グロッビング記号
- 7.3 優先順位
- 7.4 ファイル修飾子
- 7.4.1 ファイル修飾子一覧
- 7.4.2 ファイル修飾子の組み合わせ
- 7.5 展開編集子
- 7.6 グロッビングフラグ
- 7.7 近似マッチ
第8章 その他の展開
- 8.1 パス名展開
- 8.1.1 ~展開
- 8.1.2 名前付きディレクトリ
- 8.1.3 コマンドのフルパス展開
- 8.1.4 変数への代入とファイル名展開
- 8.2 プロセス置換
- 8.2.1 プロセス置換の使用例
- 8.3 コマンド置換
- 8.3.1 バッククォート
- 8.3.2 $(...)
- 8.3.3 コマンド置換と単語分割
- 8.4 ファイル入力置換
- 8.4.1 全行からのパターン抽出
- 8.4.2 特定のパターンを含む行からのパターン抽出
- 8.4.3 特定のパターンを含まない行からのパターン抽出
- 8.5 ブレース展開
- 8.5.1 単語展開
- 8.5.2 整数範囲展開
- 8.5.3 文字範囲展開
- 8.5.4 ブレース展開の注意点
- 8.6 算術展開
- 8.6.1 利用できる演算子
- 8.6.2 基数指定
- 8.6.3 数式評価
- 8.6.4 数学関数
第9章 エイリアス
- 9.1 エイリアスの定義と参照
- 9.2 aliasコマンド
- 9.3 接尾辞エイリアス
- 9.4 グローバルエイリアス
- 9.5 エイリアスの回避
第10章 構文
- 10.1 コマンドが返す値
- 10.2 選択実行(ANDとOR)
- 10.3 連続実行
- 10.4 バックグラウンド実行
- 10.5 サブシェルとグループ化
- 10.5.1 サブシェル
- 10.5.2 グルーピング
- 10.6 条件式
- 10.7 制御構造
- 10.7.1 if
- 10.7.2 case
- 10.7.3 select
- 10.7.4 for
- 10.7.5 while
- 10.7.6 until
- 10.7.7 repeat
- 10.7.8 breakとcontinue
第11章 関数
- 11.1 関数の定義と抹消
- 11.2 関数からの復帰
- 11.3 位置パラメータ
- 11.3.1 位置パラメータ操作コマンド
- 11.3.2 引数解析の例
- 11.4 変数の束縛
- 11.5 関数のオートロード
- 11.5.1 autoload
- 11.5.2 オートロード関数定義ファイル
- 11.5.3 ksh風オートロード
- 11.5.4 autoloadコマンド
- 11.5.5 関数のコンパイル
- 11.6 特殊関数
第12章 ファイル記述子の操作
- 12.1 ファイル記述子
- 12.2 dupシステムコール
- 12.3 入出力のリダイレクト
- 12.4 ヒアドキュメント
- 12.5 ヒアストリング
- 12.6 コマンドを伴わないリダイレクト
- 12.7 パイプ
- 12.7.1 パイプとサブシェル
- 12.8 マルチIO
- 12.9 ファイル記述子処理例
- 12.9.1 入出力の切り替え
- 12.9.2 標準出力と標準エラー出力
- 12.9.3 エラー出力の加工(汎用版)
- 12.9.4 エラー出力の加工(zsh版)
- 12.9.5 ファイル記述子の動的割り当て
- 12.10 コプロセスとの双方向パイプ
第13章 ジョブ制御とシグナル処理
- 13.1 ジョブ操作
- 13.2 ジョブ番号とジョブ指定
- 13.3 シグナル送信
- 13.4 シグナル捕捉
- 13.4.1 trap
- 13.4.2 TRAP関数
- 13.4.3 特別なシグナル
第14章 その他のコマンド
- 14.1 システムリソースへのアクセス
- 14.1.1 リソースリミットの設定と解除
- 14.1.2 リソースリミット設定例
- 14.2 値の出力
- 14.2.1 echo
- 14.2.2 print
- 14.2.3 printf
- 14.2.4 printf使用例
- 14.3 ハッシュ表の操作
- 14.4 コマンド解釈の制御
- 14.5 他のシェルのエミュレーション
- 14.5.1 エミュレーション関連のオプション
- 14.6 計時情報出力
- 14.7 ファイル作成モードマスク
- 14.8 拡張モジュールのロード
- 14.8.1 zmodloadコマンド
- 14.8.2 主なモジュール
第15章 補完のカスタマイズ
- 15.1 compctlとcompsysの選択
- 15.2 compctl
- 15.2.1 補完対象の単純選択
- 15.2.2 特別な位置の補完の設定
- 15.2.3 補完定義の一覧出力
- 15.2.4 段階的選択補完
- 15.2.5 補完挙動の調整
- 15.2.6 拡張補完(条件付き補完)
- 15.2.7 候補一覧のグルーピング
- 15.2.8 関数による補完単語生成
- 15.2.9 compctlの設定例
- 15.3 compsys
- 15.3.1 補完カスタマイズのレベル
- 15.3.2 compaddによる補完定義
- 15.3.3 タグ・スタイルに対応した補完定義
- 15.3.4 _argumentsによる補完定義
- 15.3.5 _argumentsによる引数仕様記述
- 15.3.6 補完定義読み込みの自動化
- 15.3.7 状態を追跡した補完
- 15.3.8 複数のタグの補完
- 15.3.9 複数タグ補完の別法
- 15.3.10 ユーザ定義スタイルの尊重
- 15.3.11 補完コンテクストの意図的操作
- 15.3.12 複合文字列の補完
- 15.3.13 サブコマンドごとの候補セット切り替え
- 15.3.14 _argumentsのその他のオプション
- 15.3.15 様々な補完アクション
- 15.3.16 怠惰補完
- 15.4 compctlからcompsysへの移行
- 15.4.1 単純選択オプションの置き換え
- 15.4.2 拡張補完の置き換え
第16章 ウィジェット
- 16.1 ウィジェット作成の指針
- 16.2 ウィジェット内で有用な変数
- 16.3 zleコマンド
- 16.4 ウィジェット作成例
- 16.4.1 zsh数字インベーダーゲーム
- 16.4.2 ゲームに必要な要素
- 16.4.3 関数の作成とウィジェット登録
- 16.5 補完ウィジェット
- 16.5.1 補完ウィジェット定義の流れ
- 16.5.2 補完ウィジェット定義例
- 16.6 主な寄贈ウィジェット
- 16.6.1 単語移動のカスタマイズ select-word-style
- 16.6.2 tcsh風のヒストリ検索 history-search-end
- 16.6.3 複数行ヒストリ対応の検索 up-line-or-beginning-search
- 16.6.4 予測入力 predict-on
- 16.6.5 最後の単語を適切に選ぶ smart-insert-last-word
- 16.6.6 有名なゲーム tetris
付録A ヒストリ展開記法一覧
- A.1 イベントの選択
- A.2 選択したイベントの引数選択
- A.3 ヒストリ編集子
- A.4 ヒストリに関連する変数
- A.5 ヒストリに関連するオプション
付録B 変数展開記号一覧
- B.1 値の展開
- B.2 値の加工
- B.3 変数展開フラグ
- B.4 添字用展開フラグ
- B.5 変数展開制御編集子
- B.6 typesetのオプション
- B.7 readのオプション
- B.8 特殊変数
付録C ファイル名生成記法一覧
- C.1 グロッビング記号
- C.2 ファイル修飾子
- C.3 ファイル展開編集子
付録D オプション一覧
- D.1 1字オプション
- D.1.1 zshモードの1字オプション一覧
- D.1.2 sh/kshモードの1字オプション一覧