Edited at

【初心者歓迎】bashからfishに切り替えて快適なターミナル環境を構築しよう

More than 1 year has passed since last update.


快適なターミナル環境のために

gitの管理をしたり、サーバーに入ったり、ファイルを書き換えたり、何かとお世話になっているターミナル。

しかし、デフォルトで入っているbashというシェルでは、何かと不便なことが多いものです。

例えば、gitのコマンドを補完してくれなかったり、($ git branchと変換したいのですが、ここでTabを押しても何も反応しません。。。)

スクリーンショット.png

ディレクトリ移動の時にTabを押しすぎてごちゃごちゃしたり、(3回くらいならまだ良いほうかも)

スクリーンショット2.png

コマンドを間違えていても気がつかないし、(自分が悪いんだけれども。。。)

スクリーンショット3.png

地味に困ることが色々とあります。

そして、これらのイライラを解消してくれるのが、fishというシェルなのです。


fishでできること

fishは、Friendly Interactive SHellの略語で、とにかくユーザーフレンドリーに作られたシェルです。

他のシェルとは違って、特にカスタマイズすることなく使用することができます。

fishを使うと、今までの問題がこんな風に解決できます。


Gitコマンドの補完

スクリーンショット 2018-06-27 10.49.10.png

$ git branchを入力しようとしたら、履歴にそのコマンドがあれば灰色の文字で表示されるし、履歴にない場合でもTabを押せば補完候補からコマンドを選ぶことができます。

それに加えて、$ git branch -でTabを押すと選択できるオプションも一覧で表示してくれます。これは結構便利です。

スクリーンショット 2018-06-27 12.06.32.png

他にも様々なコマンドにおけるオプションも表示できるので、いちいち調べる手間を省くことができそうです。


ディレクトリの移動がスムーズに

ディレクトリの移動のときにTabを押すと、移動できる候補が表示されて、Tabをもう一度押すと候補を選択することができます。

スクリーンショット 2018-06-27 12.10.48.png

もちろん選択には←↓↑→のキーを使うことも可能。

もうTabの連打でターミナルに文字がごちゃごちゃすることはありません。


コマンドの打ち間違いが視覚的にわかる

bashでは実行しなければわからなかったコマンドの打ち間違いも、fishなら事前にわかります。

スクリーンショット 2018-06-27 12.15.40.png

存在しないコマンドであれば、文字が赤いままなのでミスに気がつきやすいです。

地味に生産性が高まります。

この他にも便利な機能があり、素直におすすめです、fish。

フレームワークとして、oh-my-fishfishermanなどを使うと、より見た目に変化をつけたりできますが、個人的にはシンプルなものが好きなので、fishをダウンロードするだけで良いかなと。

以下に、簡単なfishの導入方法を載せておくので参考までに。


fishの導入方法


Homebrewでをインストール

まずは、fishをインストールしていきます。

ターミナルから以下のコマンドを実行してください。


terminal

$ brew install fish


もしもHomebrewをインストールしていなくてエラーが出た場合は、以下のコマンドからHomebrewをインストールできます。


terminal

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"



デフォルトのシェルをfishに設定する

fishがインストールできたら、次にターミナルのデフォルト設定をfishに変更していきます。

ターミナルで以下のコマンドを実行して、シェルファイルにfishの情報を書き込みます。

ちなみに、シェルファイルへの書き込みは管理者権限が必要になります。


terminal

$ sudo -s

# echo /usr/local/bin/fish >> /etc/shells
# exit

次に、ターミナルを開いた時のデフォルトのシェルをfishに変更します。


terminal

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


これらのコマンドが無事に反映されたら、ターミナルを再起動してください。

上部バーにfishと表示されるようになっているのがわかると思います。

これでデフォルトでfishを使うことができるようになりました。

無事にあなたもfish民です。


おまけ:さらにshellをカスタマイズする

fishでエイリアスを設定することで、自分好みのコマンドを設定することができます。

例えば、ターミナルからSublimeTextで任意のディレクトリを開きたい場合、以下のように記載して


config/fish/config.fish

# ターミナルからSublimeTextで開く

alias sb='open -a /Applications/Sublime\ Text.app'

ターミナルに設定を読み込ませれば、aliasで設定したコマンドを使えるようになります。

# 設定の読み込み

$ source .config/fish/config.fish

# SublimeTextでディレクトリを開く
$ sb MyProjects/myapp

よく使うコマンドなどは、ショートカットとして登録しておくと便利になるのでおすすめです。