TECH BOX

Technology blog from Web Engineer

この記事は最終更新日から7年以上経過しているため正確ではないかもしれません

fish shellの導入

Macのターミナル環境をfish shellにしたらいろいろ捗ったのでご紹介。

fish shellの大きなメリット

fish shellはいろいろbashと違うところがありますが、乗り換えた大きな理由として下記があります。

  • ディレクトリやコマンドを自動でサジェストしてくれる
  • 環境変数の追加削除が簡単

autosuggestions

公式サイト:fish shell
日本語訳:全訳!fishシェル普及計画

fish shellのインストール

インストール方法は公式にもあるように、幾つかの方法がありますがここではHomebrewを使ってインストール

$ brew install fish

シェルを一時的にfishに変更

普段はbashをデフォルトで使用したい場合などはwhichで一時的にシェルを変更できる。

$ which fish

ターミナルのデフォルトをfishに変更

ターミナルで使うシェルをいちいちfishに変更するのが面倒な場合は、最初からターミナルをfishで起動することができる。

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

もし変更できない場合は/etc/shellsfishが追加されていないので、ファイル末尾に/usr/local/bin/fishを追記して再度コマンドを実行。

ターミナルを再起動するとfishが使えます。

環境変数の追加

すでにbashなどでNode.jsなどをインストールしている場合はfishに環境変数のパスが設定されていない可能性があるので、その場合はfishで環境変数を追加。

$ set -U fish_user_paths $fish_user_paths 環境変数のパス

追加した環境変数は$fish_user_paths$PATHで確認できます。

$ echo $fish_user_paths

echo_path

複数存在する場合は配列として格納されているので添字で抜き出すことができます。
※ただし、プログラムとちがって添字は1からスタートする

環境変数の削除

利用しなくなった環境変数は削除することができる。

$ set -e -U fish_user_paths[x]

消したい配列番号を指定すればよい。

fishermanの導入

fishのパッケージ管理としてoh-my-fishfishermanなどがありますが、最近はfishermanがいいとのことなのでfishermanを導入。

$ curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisher

プラグインの追加はコマンドか/path/to/.config/fish/fishfileに追加してコマンドを叩く。

コマンドでの追加方法

$ fisher パッケージ名

fishfileに追加した場合

$ fisher

パッケージの削除方法

$ fisher uninstall パッケージ名

テーマの変更

テーマはoh-my-fishのテーマを導入することができる。

参考画像で使っているのはagnosterというテーマ。
ただし、Powerline Fontが必要なのであらかじめインストールすること。

# powerline fontのインストール
$ git clone https://github.com/powerline/fonts.git
$ cd fonts
$ ./install.sh
$ cd ..
$ rm -rf fonts/

インストールしたらターミナルの環境設定を開き、フォントをSource Code Pro Powerlineを指定。
その後、テーマをインストール

$ fisher omf/agnoster

これで参考画面のようなテーマになる。


プラグインなどはまた後日。