シェル環境をfishへ乗り換えてみた

たまたま社内のS氏とターミナル環境の話をしていて「こんなの見たんですよ。カッコよくないですか?」と見せてくれたGIF画像が発端です。
私もS氏も「これなんだろう?」と知らなかったというのもありますが、とても魅力的に見えたので答えが出るまで調べて乗り換えてみることにしました。

辿り着いた答えがこれ

fishshell.com

ちなみにfishfriendly interactive shellの略称だそうです。
名称に優しさを感じる。惚れた

導入していく

  • 前提条件
    • macOS Mojave
    • Homebrewは導入済

1. fishをインストール

$ brew install fish
・・・略
$ fish --version
fish, version 3.0.2

無事インストール出来ました!
ですが、ログイン時のシェルがまだfishに切り替わっていないので変更していきます。

2. shellsの更新を行う

最終的にshallesへfishのパスを書き込むので調べておきます。

$ which fish
/usr/local/bin/fish

shellsにfishを追加するのでrootで開きましょう。

$ sudo vim /etc/shells

以下のように最終行に追加します。

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/fish # New!!

3. ログインシェルの変更を行う

これでラストです。
以下のとおり、ログイン時のシェルを変更します。

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

これでターミナルを再起動すればOKです。

こんな感じで動きます!カッコいい!

f:id:tanabebe:20190710174854g:plain fish_configと打って実行すると設定画面がブラウザ上で開かれます。ありがてぇ… f:id:tanabebe:20190710200042p:plain

所感

  • メリット

    • コマンド履歴からのオートサジェストがカッコいい
    • シンタックスハイライトがカラフルで使っていて楽しい
    • 設定画面がブラウザ上で編集出来る
    • TABの履歴補完が優秀
    • デフォルト設定でも十分なので、これ使っとけ感がある
    • オサレな技術者気分を味わえる
  • デメリット

    • POSIX準拠ではない(ここで興味が割れそう)
    • 他のシェルと違いexportコマンドなどが使えない(他にもある)
    • 他のシェルと同じように振る舞うためには、別途プラグインを入れるかfishにならう必要がある
    • テトリスが入っていない

おわりに

これだけでターミナルが一気にオサレな感じになりました。
普段使いの道具に拘りを持っている方は多いと思いますが、私は見た目や雰囲気から入ってしまうので、そういう意味でいうとかなりマッチしたシェルだと思いました。
これでス◯バでドヤ顔が出来ますね!
現在更新はされていないようですが、日本語翻訳もありました。
英語に苦手意識がある方はこちらも参照してみてはいかがでしょうか? fish.rubikitch.com

おまけ

追加でこんなのも入れておきました。
ポケモンがランダムで背景設定される。可愛い。 f:id:tanabebe:20190710232554g:plain GitHub - LazoCoder/Pokemon-Terminal: Pokemon terminal themes.