Linuxサーバにログインして管理業務を行う場合、ユーザーが触れることになるのは、そのユーザーに設定されたインタラクティブシェルになることが多い。多くのLinuxディストリビューションでは、インタラクティブシェルとして「bash」が使われている。Macもデフォルトのインタラクティブシェルはbashだし、Windows 10で動作するLinux(Windows Subsystem for Linux)でもデフォルトのインタラクティブシェルはbashだ。

確かにbashは便利なインタラクティブシェルだが、もっと便利なインタラクティブシェルがある。「可能な限り、作業を楽にこなしたい」という趣旨のこの連載にぴったりのシェル、その名は「fish」だ。設定不要で最初から使えるように組まれている。

残念な点は、Linuxディストリビューションによってはインストールが面倒くさいということだ。各Linuxディストリビューションでのインストール方法はfishの公式サイトを参考にしていただきたいが、代表的なものをいくつか紹介しておこう。

fishインストール(Red Hat Enterprise Linux 7)

fishインストール(CentOS 7)

fishインストール(Ubuntu)

fishインストール(Mac / Homebrew)

fishインストール(FreeBSD)

MacやFreeBSDのようにfishがパッケージに取り込まれているものはインストールが簡単なのだが、Red Hat Enterprise LinuxやCentOSのようにオフィシャルパッケージに含まれていない場合には注意が必要だ。場合によっては、上記の方法ではインストールできないことがある。

対処法としては、ソースコードをダウンロードし、依存するライブラリとビルドツールを揃えて自分でコンパイル・インストールすればよいのだが、そこまでやるのは本連載の趣旨に反する。もし手元で試してみてうまくインストールできなかったら、今回は「そういうシェルもあるのだな」と参考程度に読んでいただければと思う。

さて、インストールが完了したらユーザーのシェルをfishに変えてみる。まずは「/etc/shells」ファイルにfishが追加されていることを確認し、入っていない場合にはインストールされたfishのパスを追加しておく。


# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/bin/fish
/usr/sbin/nologin
#

ここまで準備したら、「chsh」コマンドを実行する。そこでfishのパスを入力して保存すれば準備完了だ。いったんログアウトして、もう一度ログインすれば、シェルがbashからfishに切り替わる。

fishの機能は、bashやzshといったほかの多機能インタラクティブシェルでも提供されている。ただし、fishではそうした機能を特に設定しなくても最初から使うことができる上、補完候補の表示機能が賢い。カレントディレクトを加味して補完候補を出してくれるし、一覧表示も扱いやすい。一覧表示中にフィルタリングして候補を絞り込むといったこともできる。

しかも、覚えるべきショートカットキーの数が少ないという特徴がある。補完候補を表示させたり、移動したりするのならタブキー、表示される補完候補を展開するのであれば「Ctrl-F」だ。

タブキーで保管候補をリスト表示

補完候補自動表示をCtrl-Fで展開

とにかく困ったら、タブキーかCtrl-Fキーを押すといい具合に操作が進むようになっていて、いったん馴れると手放せない。本連載では、次回から数回にわたってこのfishの便利な使い方を紹介していこう。