fish (shell) 解説書
「設定不要で最初から使いやすい」を掲げる現代的なコマンドラインシェル fish(Friendly Interactive Shell)の基本設計、強力な対話機能、独自文法、プラグイン運用から高度なカスタマイズまでを体系的に解説する手引きです。
章構成
-
1. 入門編:Fishの概要と特徴・環境構築
fish の設計哲学、従来のシェル(Bash/Zsh)との違い、オートサジェストやシンタックスハイライトなどの標準機能、および各 OS での環境構築を解説します。
-
2. 入門編:インタラクティブ操作と基本機能
マニュアル参照に基づく高精度なタブ補完、コマンド履歴検索、Web ブラウザを使った設定 UI(
fish_config)、およびキーバインド操作を解説します。 -
3. 入門編:Fish文法の基本とBashとの違い
Bash との意図的な非互換性とクリーンな構文、クォート文字列の展開規則、コマンド置換(
(...))、およびリダイレクトとパイプラインの記述法を解説します。 -
4. 実践編:変数とスコープ・リスト操作
setコマンドによる変数管理、4種類のスコープ(ユニバーサル変数・グローバル・ローカル・エクスポート)、リスト(配列)の扱い、および$PATHの追加(fish_add_path)を解説します。 -
5. 実践編:制御構文と条件分岐・繰り返し
条件分岐(
if、switch)、繰り返し構文(for、while)、終了ステータスに基づく条件判定、およびtestコマンドの利用方法を解説します。 -
6. 実践編:関数・プロンプト・オートロード
関数の作成と遅延読み込み(オートロード機構)、プロンプトのカスタマイズ(
fish_prompt)、およびエイリアスよりも安全で便利な略語機能(abbr)を解説します。 -
7. 実践編:プラグイン管理とエコシステム
デファクトスタンダードのパッケージマネージャー「Fisher」の導入、定番プラグイン(Tide、z、bass 等)の活用法、および
config.fishの構成管理を解説します。 -
8. 応用編:POSIXシェルとの連携と共存
Bash/POSIX スクリプトとの棲み分け方針、
bassプラグインを用いた環境設定スクリプトの透過的ロード、および direnv との統合手法を解説します。 -
9. 応用編:イベントハンドラとカスタム補完
変数の変更やディレクトリ移動に反応するイベント駆動フック、および自作 CLI ツールやスクリプト向けの高度なタブ補完スクリプト(
complete)作成を解説します。 -
10. 応用編:パフォーマンスとベストプラクティス
起動速度の計測と最適化(プロファイリング)、設定の安全な移行とリセット、および保守性の高い fish スクリプトのコーディング指針を解説します。