Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
58
Help us understand the problem. What is going on with this article?
@hiraike32

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

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

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_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を指定する必要があります。

58
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
hiraike32
Android Developer
dwango
Born in the net, Connected by the net.

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
58
Help us understand the problem. What is going on with this article?