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

Fishシェルとは?初心者でも感動するユーザーフレンドリーシェル 🐠

「黒い画面」(ターミナルやコンソールと呼ばれるもの)に、苦手意識を持っていませんか? Webクリエイターの皆さんなら、Gitの操作やビルド作業などで、どうしてもコマンドを打つ機会がありますよね。

「コマンドを覚えられない…」「タイプミスでエラーばかり…」「設定が難しくて挫折した…」

そんな経験がある方にこそ、ぜひ一度試してほしいのが、今回ご紹介する「Fishシェル」です。Fishは "Friendly Interactive Shell" の略で、その名の通り、初心者にとことん優しい、超ユーザーフレンドリーなシェルなんです。本記事では、難しい話は抜きにして、まずはコピペでFishのすごさを体験していただくことを目指します!


🚀 Fishシェルのここがすごい!3つの感動ポイント

Fishシェルにはたくさんの魅力がありますが、特に初心者が感動するであろう3つの代表的な機能をご紹介します。

1. 未来予知?なみの「オートサジェスチョン(入力履歴補完)」

Fishシェル最大の目玉機能が、このオートサジェスチョンです。過去に入力したコマンドを覚えていて、数文字入力するだけで「これ打ちたいんじゃない?」と薄い灰色で提案してくれます。提案通りでよければ、 (右矢印)キーか Ctrl+F を押すだけで入力が確定します。もう長いコマンドを打ち直す必要はありません!

例えば、以前に `git switch feature/new-design` というコマンドを打ったことがあるとします。次に `git s` と打っただけで…

$ git switch feature/new-design

このように、残りの部分を自動で提案してくれます。この機能だけで、ターミナル作業の効率が劇的に向上することを保証します!


2. 間違いが一目瞭然!「シンタックスハイライト」

コマンドの打ち間違いは、エラーの大きな原因です。Fishシェルは、入力されたコマンドが有効なものかどうかをリアルタイムで色分けしてくれます。

例えば、存在するコマンド `git` は水色で表示されます。

$ git

しかし、存在しないコマンド `gitt` を打つと、赤色で表示されます。これで「あ、タイプミスしてる!」と実行前に気づくことができます。

$ gitt

3. 設定ファイル不要!Webブラウザで簡単カスタマイズ

シェルのカスタマイズと言えば、`~/.bashrc` のような複雑な設定ファイルを編集するイメージがありますよね。Fishシェルなら、そんな心配は無用です。以下のコマンドを実行してみてください。

$ fish_config

このコマンドを実行すると、自動的にWebブラウザが立ち上がり、色設定やプロンプト(コマンド入力待ちの表示)の見た目を、プレビューを見ながらクリックだけで簡単にカスタマイズできてしまいます。黒い画面が苦手な方でも、直感的に自分好みの環境を作れます。


💻 まずは触ってみよう!Fishシェルの基本操作

それでは、実際にFishのコマンドをいくつか試してみましょう。お手元のターミナルにコピー&ペーストして、その動きを体験してください。

文字を出力する: `echo`

まずは基本の`echo`コマンドです。指定した文字列を画面に出力します。これは他のシェルとほとんど同じですね。

$ echo "Hello, Fish Shell!"
Hello, Fish Shell!

変数を使ってみる: `set`

Fishシェルで変数を扱うには `set` コマンドを使います。`=`(イコール)は使いません。スペースで区切るのがFish流です。

$ set name "Taro Yamada"

変数の内容を確認するには、`$`を付けて `echo` します。

$ echo $name
Taro Yamada

繰り返し処理: `for` ループ

Fishの`for`ループは、他のシェルに比べて非常に直感的で読みやすい構文になっています。

例えば、`item-1`から`item-3`までの文字列を一つずつ表示させてみましょう。

$ for item in item-1 item-2 item-3
    echo $item
  end
item-1
item-2
item-3

`(seq 1 3)` のようにコマンドの結果を使ってループすることもできます。これは1から3までの数字を生成するコマンドです。

$ for i in (seq 1 3)
    echo "Number: $i"
  end
Number: 1
Number: 2
Number: 3

簡単な関数を作ってみる: `function`

よく使う一連のコマンドは、関数としてまとめることができます。ここでは、挨拶をする `hello` という名前の関数を作ってみましょう。

$ function hello
    echo "Hello, $argv!"
  end

これで `hello` という新しいコマンドができました。`$argv` は関数に渡された引数(ここでは名前)を受け取るための特殊な変数です。

早速、作った関数を実行してみましょう。

$ hello "World"
Hello, World!

💡 もう少し便利に!応用的な使い方

エイリアスより強力な短縮コマンド: `abbr`

`abbr` (abbreviationの略) を使うと、短いキーワードを長いコマンドに展開できます。エイリアスと似ていますが、`abbr` は入力後に スペースEnter を押すと、その場で完全なコマンドに展開されるのが特徴です。これにより、何が実行されるのかを事前に確認できます。

Webクリエイターがよく使う `git checkout` を `gco` という短縮コマンドで実行できるようにしてみましょう。

$ abbr --add gco "git checkout"

これで、ターミナルで `gco` と入力してスペースを押すと、`git checkout` にパッと変換されます。コマンドのタイプ量が減り、本当に快適になりますよ!


⚠️ ここは注意!bashとの違い

Fishは非常に優れていますが、多くのLinuxやmacOSで標準となっている`bash`シェルとはいくつか異なる点があります。特に、他のWebサイトのコマンドをコピペする際には注意が必要です。

1. AND (&&) の書き方

複数のコマンドを連続して実行する場合、bashでは `&&` を使いますが、Fishでは `; and` を使います。

間違い (bashの書き方)

$ mkdir new_dir && cd new_dir

正解 (Fishの書き方)

$ mkdir new_dir; and cd new_dir

2. 環境変数の設定方法

PATHを通す際など、環境変数を設定する方法も異なります。bashでは `export` を使いますが、Fishでは `set` コマンドに `-x` (export) オプションを付けます。

間違い (bashの書き方)

$ export MY_VARIABLE="some_value"

正解 (Fishの書き方)

$ set -x MY_VARIABLE "some_value"

これらの違いさえ押さえておけば、大抵の場面で困ることはないでしょう。


まとめ

いかがでしたでしょうか? Fishシェルの魅力、特に「オートサジェスチョン」や「シンタックスハイライト」といったユーザーフレンドリーな機能の数々を、コピペを通して少しでも体験していただけたなら幸いです。

これまでターミナル操作に苦手意識を持っていた方も、Fishシェルを使えば「もっと触ってみたい!」と思っていただけるはずです。コマンド操作が快適になれば、開発効率も格段にアップします。

この記事を読んでFishシェルに興味を持った方は、ぜひ次の記事で実際にインストールして、あなたの開発環境に取り入れてみてください!


次のステップ ▶ Fishのインストール方法(Linux / macOS)と初期設定