73
64

bashからfishに切り替えて快適なターミナル環境を構築する

Last updated at Posted at 2018-06-27

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

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 をダウンロードするだけで良いかなと。

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

fishの導入方法(MacBook)

Homebrewでインストール

まずは、fish をインストールしていきます。
ターミナルから以下のコマンドを実行してください。

terminal
$ brew install fish

もしも Homebrew をインストールしていなくてエラーが出た場合は、公式ページを参考にしてインストールしてください。

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

fish がインストールできたら、次にターミナルのデフォルト設定を fish に変更していきます。
ターミナルで以下のコマンドを実行して、シェルファイルに fish の情報を書き込みます。
ちなみに、シェルファイルへの書き込みは管理者権限が必要になります。

terminal
// Mac M1 チップの場合は /opt/homebrew/bin/fish
# echo -s /usr/local/bin/fish >> /etc/shells

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

terminal
// M1 チップの場合は /opt/homebrew/bin/fish
$ chsh -s /usr/local/bin/fish

これらのコマンドが無事に反映されたら、ターミナルを再起動してください。
上部バーに fish と表示されるようになっているのがわかると思います。
これでデフォルトで fish を使うことができるようになりました。

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

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

$ fish_config を実行すると GUI から fish の設定を行うことができるので便利です。

スクリーンショット 2020-08-06 14.28.49.png

また、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

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

ちなみに、Android Studio で fish を使うためには、Android Studio の設定→Terminal→Shell Path に /usr/local/bin/fish を指定する必要があります。

73
64
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
73
64