Posted at

【ターミナル改造①】容易さと高機能さで、気軽に多彩環境へ変えられる「fish」を導入


  • 白黒ターミナルを利用する生活が多くなってきた無機質生活に、少々彩りを加えるために奔走する記事第一弾。

  • あの賢人のみが扱える、門戸が狭い「CLI日常利用」を、これから自分が経験していくことに、心配の前に、色彩不足を感じてしまう。

  • 「導入が簡単で、カラフルで、イケてて・・・・」という、願望をただただ搾り尽くす、立場をわきまえない技術者。

  • 今回は、そんな私でも簡単に扱えて、強力な補完等の高機能を簡単に利用できる「fish」を導入することにしよう。


概要


  • fishとは、「シンプル」「利用者が扱いやすい」「実用性の高さ」を持ったシェル(人間とコンピュータのための対話係)環境。

  • 視覚的かつ直感的に扱うことができるため、初心者や経験が浅くても、利用しやすい。

  • 公式サイト


特徴


強力なサジェスト機能


  • 履歴や補完機能等に基づいた最適かつ強力なサジェスト(提案)機能を持つ。


色彩豊かなサポート



  • 24ビットカラーをサポートしているため、様々な色の形式での表示が可能。


視覚的な強調表示


  • 構文の強調表示に加えて、誤ったコマンドにも色付けしてくれるため、間違いを減らせる。


GUIでの確認や操作も可能


  • 色彩・機能・履歴等といった設定が、ブラウザでも簡単に確認できる。


標準設定でも高機能


  • 導入後のままのデフォルト(標準)設定でも、補完機能や強調表示等の様々な機能が扱える。


結果


  • 下記のように、コマンドの強調表示や補完機能が利用できる。

image.png


  • また、誤ったコマンドの場合でも、リアルタイムで強調表示してくれる。

image.png


導入


環境


  • Mac OS X 10.13.4

  • Homebrew 2.1.0


    • ※Windowsでのfish導入方法は、WSLを利用する方法があり、詳細はこちら




インストール


  • ターミナルを開き、下記のコマンドをうち、Homebrewの確認する。

# バージョン確認

$ brew -v
# バージョンが表示されなければ、下記でインストール
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# 再度バージョン確認
$ brew -v


  • 下記のコマンドをうち、fishのインストールとバージョン確認

# fishのインストール

$ brew install fish
# バージョン確認
$ fish -v

fish, version X.X.X


  • 下記のコマンドをうち、fishのパッケージマネージャーのfisherのインストールとバージョンを確認する。

# fisherのインストール

$ curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish

# バージョン確認
$ fisher -v


標準シェル設定変更


  • ※fishをデフォルトの設定へ変更したくない人は、こちらを参考にする。

  • 下記のコマンドをうち、標準のシェル設定を開く。

# 設定ファイルを開く。パスワードが求められるので、入力する。

$ sudo vi /etc/shells


  • 開かれたファイルの末尾に、下記を追加して保存する。


/etc/shells

/usr/local/bin/fish



  • 下記のコマンドをうち、fishシェルへログインシェルを変更する。

# ログインシェルをfishシェルへ変更する。

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


  • ターミナルを再起動して、fishが動作すれば完了。

image.png


動作確認


  • 下記のように、「補完設定」「誤りコマンドの強調表示」が行えたら、完了。

image.png

image.png


パスやエイリアスの設定


  • ※bashrcやbash_profileにパスやエイリアスを設定していて、それを利用したい場合

  • 下記のコマンドをうち、設定ファイルを作成する。

# fish設定ファイルを作成する。

$ touch ~/.config/fish/config.fish
# fish設定ファイルを開く。
$ vi ~/.config/fish/config.fish


  • 作成した空の設定ファイルに、下記の例のように、パスやエイリアスの設定を記述する。。


    • ※aliasの設定は、bashと同じ記述で行える。




config.fish

set -x PATH $PATH:/Applications/XXXX/XXXXX/XXX

set -x PATH $HOME/.XXXXX/XXXXXX/bin:$PATH

alias ll='ls -lah'
alias opch='open -a google\ chrome'



  • 記述して、保存後、下記のコマンドをうち、設定ファイルを読み込む

# config.fishファイルを読み込む

$ source ~/.config/fish/config.fish


GUIでの設定操作


  • 下記のコマンドをうち、ブラウザで設定画面を開く。

# ローカルサーバーで設定画面が開く。

$ fish_config


  • 下記の画面が表示される。

image.png


  • この画面で、色のショートカットキー等の設定や、履歴の確認もできる。


プラグインの利用


  • fisherというプラグイン(拡張)を利用することで、更に効率的かつ便利なターミナル環境にすることができる。


基本コマンド


  • 下記の方式で、追加や削除、更新等を行う。

# パッケージの追加

$ fisher add パッケージ名
# パッケージの削除
$ fisher rm パッケージ名
# 全パッケージの更新
$ fisher
# インストール済みパッケージの一覧
$ fisher ls
# コマンド一覧
$ fisher -h


パッケージ利用例


  • ※今回は最初のチュートリアルのため、一個のみの導入とする。他おすすめパッケージはこちらで紹介されています。


  • 利用するパッケージは、下記。


    • 「z」 : 履歴に基づいて、パス候補を表示してくれる。あいまいな文字列でもしっかり検索できる。



  • 下記のコマンドをうち、zパッケージを追加する。


$ fisher add jethrokuan/z


  • 導入後、下記のコマンドをうち、使用感を試してみる

# 利用履歴に基づいているため、色々試す。

$ cd ~/Desktop
$ mkdir test
$ touch ~/Desktop/test/hello.py
# 「z 文字列」のように検索する
# 下記のコマンドの後に、tabキーを押して、指定フォルダを簡単表示
$ z test


まとめ


  • 今回はfish shellの試用ということで、「本当に簡単にお洒落技術者気分を味わえた」と、素晴らしき高機能さは二の次で、外面を気にし続けながら記事を書く。

  • 「自動で最適なコマンドを教えてくれる、先生的拡張機能あるかな」と、時代の素晴らしさに完全に甘えてしまった他人依存思考。

  • 次回の更なる改造のために、「スタバ技術者を堂々観察」「泥臭調査」等に励むことにしよう。


参考