fish shellで作る快適なUbuntu環境

はじめに

この記事では Ubuntu に fish shell をインストールし,快適なシェル環境を作る. Ubuntu のバージョンは 22.04 を想定しているが,他のバージョンでも動くはず.

Fish Shellとは

Fish Shell とは Mac や Linux で動作するユーザーフレンドリーでスマートなシェル環境で,特徴としてコマンドのシンタックスハイライトや強力なタブ補完機能がある.また,コマンド履歴からの補完や検索もできる.

fish はスクリプトの書きやすさなど,ユーザーフレンドリーさを重視したもので使いやすいが,その分 POSIX 非互換である. そのため,bashやshのスクリプトはそのままでは動作しない.

しかし,これらの問題は後述するユーティリティやbashの起動で解決可能なため,気にすることは少ない.

fishのインストールとデフォルトシェルの切り替え

前置きはほどほどにして実際のインストール手順に移る.

1
2
sudo apt update
sudo apt install fish

fish は apt でインストールできるため,上記のコマンドのみで簡単にインストールできる.

次にデフォルトシェルを fish に切り替える.

/etc/shellsの末尾に/usr/local/bin/fishを追記する.そして,

1
chsh -s /usr/local/bin/fish

このコマンドでデフォルトシェルを変更する.ターミナルを開き直せば自動的に fish で起動する.

fish の設定ファイル

bash の .bashrc に相当するファイルは,~/.config/fish/config.fishとなる.ここに環境変数などを追記する.

パスはadd_fish_path <通したいパス>で追加できる.

fisherのインストール

プラグインを管理するためのパッケージマネージャーである fisher をインストールする.

1
curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish

プラグインのインストール

bobthefish

bobthefish はシェルの見た目をPowerlineみたいにいい感じにしてくれるプラグイン.fisherでインストールできる.

1
fisher install oh-my-fish/theme-bobthefish

このプラグインを使うためには,powerline 対応のフォントを使う必要がある.

z

1
fisher install jethrokuan/z

履歴からディレクトリを移動することができるコマンド. z ディレクトリ名とすることで,過去に移動したディレクトリの中から一致する名前を候補として出して移動できる.

peco

コマンドを履歴から検索できるプラグイン.はじめに apt でインストールして,fisher でプラグインも入れる.

1
2
3
4
sudo apt update
sudo apt install peco

fisher install oh-my-fish/peco

~/.config/fish/config.fishに以下を追記することで,ctrl + r で起動することができる.

1
2
3
4
set fish_plugins theme peco
function fish_user_key_bindings
  bind \cr peco_select_history
end

bass

fish で bash のスクリプトを実行できるようにするためのプラグイン.

bass <bashのスクリプト>の形式で実行できる. bass の Github リポジトリには「単純な用途であればexec bash -c "source some-bash-setup.sh; exec fish"で事足りる」とあるため,source setup.bashしか実行しないなどであれば,必要ないかもしれない.

インストール方法は

1
fisher install edc/bass

終わりに

fish には他にも abbr のような便利な機能があるのでぜひ調べてみてほしい.

Hugo で構築されています。
テーマ StackJimmy によって設計されています。