🐠

Raspberry Piでfishシェルを設定する方法

2020/10/27に公開

Raspberry Pi で fish シェルを設定する方法を備忘録としてまとめます。

fish とは?

https://fishshell.com/

強力な入力補完、親切なシンタックスハイライトを持つユーザーフレンドリーなシェルです。
自分は zsh よりも、fish 派です。

fish のインストール

まず、自分の Raspbian のバージョンを確認します。

$ lsb_release -a
# No LSB modules are available.
# Distributor ID:	Raspbian
# Description:	Raspbian GNU/Linux 10 (buster)
# Release:	10
# Codename:	buster

これはバージョン 10 ですね。

次に以下コマンドで fish をインストールします。

# aptの利用可能パッケージにfishを追加
$ echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/3/Debian_10/ /' | sudo tee /etc/apt/sources.list.d/shells:fish:release:3.list

# gpgでソフトウェアの検証を実行(あまりわかってない)
$ curl -fsSL https://download.opensuse.org/repositories/shells:fish:release:3/Debian_10/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/shells:fish:release:3.gpg > /dev/null

# パッケージのインデックスファイルの更新(ここでfishが認識される)
$ sudo apt update

# fishのインストール
$ sudo apt install fish

これでインストールの完了です。
以下で fish シェルが起動するはずです。

$ fish

やったぜ! Hello 🐠!

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

標準で起動するシェルをbashからfishに変更します。
起動シェルの変更はchshコマンドで行います。

まず、fish シェルがシェルとして認識されているか確認します。

$ cat /etc/shells
# /etc/shells: valid login shells
# /bin/sh
# /bin/bash
# /bin/rbash
# /bin/dash
# /usr/bin/fish

/usr/bin/fishがありますね。
あとはこれをchshコマンドで設定すれば完了です。

$ chsh
# パスワード:
# pi のログインシェルを変更中
# 新しい値を入力してください。標準設定値を使うならリターンを押してください
# ログインシェル [/bin/bash]: /usr/bin/fish

パスワードを入力するとログインシェルの設定を聞かれるのでここで、先ほど確認した/usr/bin/fishを設定します。
その後、ssh を一度ログアウトして、再度ログインすると fish シェルが起動するはずです。

(おまけ)fisherの追加 & fzfの設定

fish 使うなら是非設定しておきたい fzf(CLI でインクリメンタルに曖昧検索ができる最高便利なツール)についてもおまけでまとめます。

# fzfのインストール
sudo apt-get install fzf

# fishのパッケージマネージャーのfisherの追加
$ curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish

# fishのfzfプラグインの追加
$ fisher add jethrokuan/fzf 

これでctrl + cでコマンド履歴の曖昧検索、ctrl + oでファイルの曖昧検索ができるようになります!便利!

他のコマンドはこちらを参照してください

https://github.com/jethrokuan/fzf

終わりに

以上「Raspberry Pi で fish シェルを設定する方法」でした。
fish 追加したり vim 追加したり、足回りを固めてばかりで一向に電子工作が進みません w

参考

Discussion