fish shellを使ってみよう
シェルには様々なな種類が存在しています。
shやbash、zsh、cshなどなど。。。
それぞれメリットデメリットが存在しますが、今回はその中でも割と新しめでおすすめのシェル、「fish」を紹介致します。
fish shell
What’s?
fishとは、Friendly interactive shellの略称です。
Finally, a command line shell for the 90s fish is a smart and user-friendly command line shell for Linux, macOS, and the rest of the family.fish shell
ユーザーフレンドリーな使いやすさ、対話ベースの操作などなど他のシェルの良いところは吸収し、使いにくいところは改善しています。
今回はmacへの導入方法と、簡単な初期設定をご紹介致します
手順
fishのインストール
まずはfish shellをHomebrewでインストールしましょう。
==> Installing fish
==> Downloading https://github.com/fish-shell/fish-shell/releases/download/3.0.2/fish-3.0.2.tar.gz
==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws.com/4279682/90c0cc00-3490-11e9-8ea9-29db33a32b24?X-Amz-Algorithm=AWS4-HMAC-
######################################################################## 100.0%
==> cmake . -DCMAKE_C_FLAGS_RELEASE=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG -DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/fish/3.0.2 -DCMAKE_BUILD_TYPE=Relea
==> make install
==> Caveats
You will need to add:
/usr/local/bin/fish
to /etc/shells.
Then run:
chsh -s /usr/local/bin/fish
to make fish your default shell.
==> Summary
:beer: /usr/local/Cellar/fish/3.0.2: 953 files, 8.2MB, built in 1 minute 15 seconds
確認
以下のコマンドで確認しましょう。
fish, version 3.0.2
fish shellを起動シェルに設定
次に、chsh -s /usr/local/bin/fishでデフォルトのシェルとしてfishを設定します。
エラーが出た場合
もし、ここでエラーが出た場合は、sudo vi /etc/shellsコマンドで、末尾に/usr/local/bin/fishを追加しましょう。
確認
これで一旦ターミナルアプリを再起動すると、fish shellに切り替わっていると思います。
Last login: Wed Jun 19 11:32:07 on ttys000
Welcome to fish, the friendly interactive shell
[11:40:58] blogenist@120 /Users/blogenist (0)
>
各種設定
レイアウト
fish shellはGUIベースで見た目をカスタマイズすることが出来ます。
fish_configと打ってみてください。
すると、ブラウザが立ち上がると思います。

テンプレートが複数あるので、Set Themeボタンを押すだけで反映されてしまいます!
簡単過ぎて恐ろしいですね・・・!
もちろん各テーマもさらにカスタマイズ出来ます!
他にもエイリアスや関数などをGUIで管理出来るのでとても使いやすいです!
bashやzshの場合は自分で設定ファイルを記述したり、切り替えをしないといけなかったので確認がめんどくさかったですよね。orz
fisher(fisherman)のインストール
次に、fish shellのためのプラグインマネージャーであるfisher(fisherman)をインストールしましょう。
こちらを使うことで、fish shellをカスタマイズする際に自分で記述する必要が無くなります!
fisherはHomebrewでは落とせないのでcurl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fishで直接インストールしましょう。
確認
以下のコマンドでインストールを確認しましょう。
fisher version 3.2.9 ~/.config/fish/functions/fisher.fish
pecoプラグインの導入
fishはpecoのプラグインも用意されているので簡単に導入出来ます。
あらかじめpecoはインストールしておきましょう。
関連記事
【ターミナルの使いやすさ抜群に】標準出力に対する最強の検索ツール「Peco」をインストールしたら幸せになった【バイバイgrep/find】
IT
Go
Homebrew
Mac
アプリケーションfisher add oh-my-fish/plugin-pecoでプラグインをインストールします。
インストールしたら設定ファイルに以下を記述します。
#peco
function fish_user_key_bindings
bind \cr peco_select_history
end
これでCtrl + Rでfish上でpecoを使った履歴検索が動くようになります。

theme-bobthefishプラグインの導入
次はtheme-bobthefishをインストールしましょう。
こちらはターミナル上にGitの現在のブランチや差分状況をわかりやすく表示してくれるプラグインなので、gitを使っている方ならマストです!
created new fishfile in ~/.config/fish/fishfile
fetching https://codeload.github.com/oh-my-fish/theme-bobthefish/tar.gz/master
linking ~/.config/fish/functions/__bobthefish_colors.fish
linking ~/.config/fish/functions/__bobthefish_display_colors.fish
linking ~/.config/fish/functions/__bobthefish_glyphs.fish
linking ~/.config/fish/functions/bobthefish_display_colors.fish
linking ~/.config/fish/functions/fish_greeting.fish
linking ~/.config/fish/functions/fish_mode_prompt.fish
linking ~/.config/fish/functions/fish_prompt.fish
linking ~/.config/fish/functions/fish_right_prompt.fish
linking ~/.config/fish/functions/fish_title.fish
added 1 package in 1.43s
文字化けする場合
インストール完了するとすぐに反映されますが、文字化けする場合があります。
![]()
その場合はPowerline-fontsをインストールする必要がありますので、以下の手順を行ってフォントをインストールしてください。/p>
git clone https://github.com/powerline/fonts.git
cd fonts
./install.sh
cd ../
rm -rf ./fonts
次に、iTeam2にて、インストールしたpowerline-fontsを使うように設定しましょう。
iTerm2 > Preferences > Profiles > Text > Change Fontから、Literation Mono Powerlineを選択しましょう。
これで文字化けが消えてアイコンが表示されるようになります。

ブランチ名が表示されていない場合
文字化けが解消されたが、現在のブランチ名が出てない場合があります。
その場合は、config.fishにset -g theme_display_git_master_branch yesを追記して再読み込みすることで表示されるようになります。
![]()
綺麗に表示されていますね♪
ディレクトリを省略したくない場合
デフォルトでは、以下のようにカレントディレクトリ以外は省略されています。
# ~/Develop/git/github/powerline/fonts
~/D/g/g/p/fonts
省略させたくない場合は、config.fishにset -g fish_prompt_pwd_dir_length 0を追記しましょう。
![]()
これで省略されなくなりました♪
終わりに
以上のように、bashやzshに比べてカスタマイズがとてもしやすく、使いやすいシェルです。
割と最新のシェルでまだまだ開発が活発なようなので、気になる方は是非導入してみてください。

Finally, a command
line shell for the 90s
fish is a smart and user-friendly command line
shell for Linux, macOS, and the rest of the family.