🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

Fishシェルの強力な補完・色分け・ヒストリ機能を試してみよう

こんにちは!Web制作の世界に飛び込んだばかりの皆さん、そして日々のコーディングをもう少し快適にしたいと考えている中級者の皆さん。毎日使う「ターミナル」、もっと便利になると思いませんか?🤔

多くの人が最初に触れるシェルは「Bash」かもしれませんが、今回は「Fishシェル」という、とっても賢くて使いやすいシェルをご紹介します。Fishは「Friendly Interactive SHell」の略で、その名の通り、私たちユーザーにとても親切なんです。

この記事では、Fishの数ある魅力の中から、特に「強力な補完機能」「直感的な色分け」「賢いヒストリ機能」の3つに絞って、そのすごさを体験していただきます。難しい設定は一切不要!記事中のコードをコピー&ペーストするだけで、「おお、便利!」と感じてもらえるはずです。さあ、一緒にFishの世界を探検し、ターミナル操作を劇的に効率化させましょう!🚀


🐠 もうコマンドを覚えなくていい?Fishの超強力な「補完機能」

ターミナル操作で一番のストレスは、「あれ、あのコマンドなんだっけ?」「オプションの綴りは?」と、いちいちコマンドを思い出したり調べたりする手間ですよね。Fishの補完機能は、そんな悩みを過去のものにします。

コマンドを入力し始めると、履歴や文脈から次に入力されそうなコマンドを薄い灰色で予測表示してくれます。その予測でよければ、 (右矢印キー) または Ctrl + F を押すだけで入力が確定!驚くほどタイピングの手間が省けます。

コマンドのサブコマンドを補完

例えば、バージョン管理ツールの `git` にはたくさんのサブコマンド(`commit`, `push`, `pull`など)があります。`git` と入力してスペースキーを押すだけで、Fishが使えるサブコマンドのリストを教えてくれます。

$ git 

(上記を入力すると、`add`, `blame`, `branch`, `checkout`などが一覧で表示されます)


オプション(フラグ)を補完

コマンドのオプションも忘れてしまいがち。でもFishなら大丈夫。ハイフン `-` を入力すれば、そのコマンドで利用可能なオプションを説明付きで一覧表示してくれます。もう `man` コマンドで調べる必要はほとんどありません。

$ ls -

(上記を入力すると、`-a` (all), `-l` (long format), `-t` (sort by time) などが説明と共に表示されます)


ファイルやディレクトリのパスを補完

もちろん、ファイルやディレクトリのパス補完も強力です。`cd` コマンドなどでパスを入力し始め、Tabキーを押せば候補を一覧表示。もう一文字、もう一文字と入力していくと、候補が絞り込まれていきます。タイプミスも防げて一石二鳥ですね!

$ cd D/P/

(例えば `Documents/Projects/` へ移動したい場合、上記のように大文字で入力しても、Fishは賢く補完してくれます)


🎨 見るだけでわかる!直感的な「カラー表示」

真っ黒な画面に白い文字だけ…というのは、少し味気ないですし、何が何だか分かりにくいですよね。Fishはデフォルトで、構文(シンタックス)に応じてテキストを色分けしてくれます。これにより、コマンドの正誤やファイルの種類が一目で判断できます。

有効なコマンドは青色

システムに存在する、実行可能なコマンドは青色で表示されます。入力した瞬間に「あ、このコマンドは使えるな」と視覚的に確認できるので安心です。

$ ls -l

(`ls` が青色で表示されます)


無効なコマンドは赤色

一方、存在しないコマンドやタイプミスは赤色で表示されます。実行する前に間違いに気づけるので、無駄なエラーを防ぐことができます。これは本当に便利!

$ lss -l

(`ls` のタイプミスである `lss` が赤色で表示されます)


ファイルやディレクトリの種類を色分け

コマンドの実行結果もカラフルです。例えば `ls` コマンドを使ったとき、ディレクトリは青色の太字、実行ファイルは緑色、圧縮ファイルは赤色など、種類に応じて色分けしてくれます。探しているものがすぐに見つかりますね。

$ ls

(カレントディレクトリにあるファイルやフォルダが色分けされて表示されます)


🕰️ タイプしながら過去を探す!インクリメンタルな「履歴(ヒストリ)機能」

「さっき実行した、あの長いコマンドをもう一度使いたい…」そんな時、 (上矢印キー) を連打していませんか?Fishなら、もっとスマートに履歴を呼び出せます。

Fishの履歴検索は「インクリメンタルサーチ」が基本です。コマンドの一部を入力するだけで、その文字列を含む直近の履歴がサジェストされます。

入力しながら履歴を検索

例えば、過去に `git commit` コマンドを何回か実行したとします。プロンプトに `git` と入力した状態で キーを押してみてください。すると、ただ一つ前のコマンドが表示されるのではなく、`git` で始まるコマンドの履歴だけを遡って検索できます。

$ git

(上記を入力した状態で を押すと、`git` で始まる過去のコマンドが表示されます)


キーワードで履歴全体を検索

もっと前の履歴や、コマンドの途中にあるキーワードで探したい場合は `history search` が便利です。履歴の中から指定したキーワードを含むコマンドだけを一覧表示してくれます。

$ history search "commit"

(履歴の中から "commit" という文字列を含むコマンドが一覧表示されます)


🙋‍♀️ 困った時の「ヘルプ機能」

Fishは、助けが必要な時もフレンドリーです。コマンドの使い方が分からなくなったら、`help` コマンドを使ってみましょう。

驚くべきことに、Fishは多くのコマンドのヘルプページ(manページ)を、あなたのデフォルトのWebブラウザで自動的に開いてくれます。黒い画面で英語のヘルプを読むのが苦手な方でも、見慣れたブラウザでじっくり読むことができます。

$ help ls

(`ls`コマンドのマニュアルページがWebブラウザの新しいタブで開かれます)


⚠️ Fishを使う上での注意点

ここまでFishの良い点をたくさん紹介してきましたが、一つだけ気をつけるべき点があります。それは「Bashとの構文の違い」です。

世の中の多くのシェルスクリプトや設定例は、依然としてBashを基準に書かれています。そのため、Web上の記事で見つけたコマンドをそのままFishに貼り付けても、動かないことがあります。

例えば、環境変数を設定するコマンド。Bashでは `export` を使いますが、Fishでは `set` を使います。

Bashでの環境変数設定

# これはFishではエラーになります
$ export MY_VARIABLE="hello"

Fishでの環境変数設定

Fishでは `-x` または `--export` オプションを付けて変数を設定します。

# これがFishの正しい書き方です
$ set -x MY_VARIABLE "hello"

最初は少し戸惑うかもしれませんが、Fishの構文はよりシンプルで一貫性があるため、慣れるとむしろ分かりやすいと感じるはずです。もしBashのスクリプトを実行したい場合は、`bash -c "スクリプト内容"` のように明示的にBashで実行する方法もあります。


まとめ

いかがでしたか? Fishシェルの持つ強力な機能のほんの一部ですが、その便利さの片鱗は感じていただけたのではないでしょうか。

これらの機能は、すべて追加の設定なしに、インストールした瞬間から利用できます。日々の細かなストレスがなくなるだけで、コーディングの楽しさや集中力は格段にアップするはずです。

ぜひこの機会にFishシェルを導入して、快適なターミナルライフをスタートさせてみてください!


こちらの記事も読まれています

FishとBashの違いを比較しながら学ぶ基本操作の流れ