魚 、 fの頭字語 友好的に私 インタラクティブなsh ellは、Unixライクなシステム向けの、設備の整った、スマートでユーザーフレンドリーなシェルです。 Fishには、自動提案、構文の強調表示、検索可能な履歴(BashのCTRL + rなど)、スマート検索機能、すばらしいVGAカラーのサポート、Webベースの構成、マニュアルページの補完など、多くの重要な機能が付属しています。 。インストールするだけで、すぐに使い始めることができます。追加の構成は必要ありません。または、追加のアドオン/プラグインをインストールする必要はありません。このチュートリアルでは、Linuxでfishshellをインストールして使用する方法について説明します。
LinuxにFishShellをインストールする
fishは非常にユーザーフレンドリーで機能豊富なシェルですが、ほとんどのLinuxディストリビューションのデフォルトのリポジトリには含まれていません。 Arch Linux、Gentoo、NixOS、UbuntuなどのいくつかのLinuxディストリビューションの公式リポジトリでのみ利用できます。
Arch Linux およびその派生物については、次のコマンドを実行してインストールしてください。
$ sudo pacman -S fish
CentOS 8 以下をrootとして実行します :
# cd /etc/yum.repos.d/
# wget https://download.opensuse.org/repositories/shells:fish/CentOS_8/shells:fish.repo
# yum install fish
CentOS 7 以下をrootとして実行します :
# cd /etc/yum.repos.d/
# wget https://download.opensuse.org/repositories/shells:fish:release:2/CentOS_7/shells:fish:release:2.repo
# yum install fish
CentOS 6 以下をrootとして実行します :
# cd /etc/yum.repos.d/
# wget https://download.opensuse.org/repositories/shells:fish:release:2/CentOS_6/shells:fish:release:2.repo
# yum install fish
Debian 10 次を実行します:
$ echo 'deb http://download.opensuse.org/repositories/shells:/fish/Debian_10/ /' | sudo tee /etc/apt/sources.list.d/shells:fish.list
$ curl -fsSL https://download.opensuse.org/repositories/shells:fish/Debian_10/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/shells_fish.gpg > /dev/null
$ sudo apt update
$ sudo apt install fish
Debian 9 以下をrootとして実行します :
# echo 'deb http://download.opensuse.org/repositories/shells:/fish/Debian_9.0/ /' > /etc/apt/sources.list.d/shells:fish.list # wget -nv https://download.opensuse.org/repositories/shells:fish/Debian_9.0/Release.key -O Release.key # apt-key add - < Release.key # apt-get update # apt-get install fish
Debian 8 以下をrootとして実行します :
# echo 'deb http://download.opensuse.org/repositories/shells:/fish/Debian_8.0/ /' > /etc/apt/sources.list.d/shells:fish.list # wget -nv https://download.opensuse.org/repositories/shells:fish/Debian_8.0/Release.key -O Release.key # apt-key add - < Release.key # apt-get update # apt-get install fish
最新のFedoraバージョンでは、以下を実行します:
$ sudo df install fish
openSUSEBuildServiceからFishをインストールすることもできます。
Fedora 31 以下をrootとして実行します :
# dnf config-manager --add-repo https://download.opensuse.org/repositories/shells:fish/Fedora_31/shells:fish.repo
# dnf install fish
Fedora 30 以下をrootとして実行します :
# dnf config-manager --add-repo https://download.opensuse.org/repositories/shells:fish/Fedora_30/shells:fish.repo
# dnf install fish
openSUSE 以下をrootとして実行します :
# zypper install fish
openSUSE Leap 15.2 以下をrootとして実行します :
# zypper addrepo https://download.opensuse.org/repositories/shells:fish/openSUSE_Leap_15.2/shells:fish.repo
# zypper refresh
# zypper install fish
RHEL 7 以下をrootとして実行します :
# cd /etc/yum.repos.d/ # wget https://download.opensuse.org/repositories/shells:fish/RHEL_7/shells:fish.repo # yum install fish
RHEL 6 以下をrootとして実行します :
# cd /etc/yum.repos.d/ # wget https://download.opensuse.org/repositories/shells:fish/RHEL_6/shells:fish.repo # yum install fish
Ubuntuについて およびその派生物:
$ sudo apt-get update
$ sudo apt-get install fish
Ubuntuとその派生物で利用可能な公式PPAもあります。以下に示すように、PPAを追加し、UbuntuにFishをインストールします。
$ sudo apt-add-repository ppa:fish-shell/release-3 $ sudo apt-get update $ sudo apt-get install fish
フィッシュシェルの使用法
デフォルトのシェルから魚に切り替えるには、次のようにします。
$ fish Welcome to fish, the friendly interactive shell
デフォルトのfish構成は、〜/.config/fish/config.fishにあります。 ( .bashrcに似ています )。存在しない場合は、作成するだけです。
自動提案
コマンドを入力すると、自動的に明るい灰色のコマンドが提案されます。そのため、Linuxの最初の数文字を入力し、Tabキーを押してコマンドを完了する必要がありました。

魚の自動提案
より多くの可能性がある場合、それはそれらをリストします。 UP / DOWN を使用して、リストから任意のコマンドを選択できます 矢印キー。実行するコマンドを選択したら、右矢印キーを押してEnterキーを押して実行します。

魚の自動提案
もうCTRL+ r はありません !すでにご存知のように、ctrl + rキーを押して逆検索を行い、Bashシェルの履歴からコマンドを検索します。ただし、フィッシュシェルでは必要ありません!自動提案機能があるので、コマンドの最初の数文字を入力し、履歴からすでに実行したリストからコマンドを選択するだけです。かっこいいですね
スマート検索
スマート検索を実行して、特定のコマンド、ファイル、またはディレクトリを見つけることもできます。たとえば、コマンドの部分文字列を入力し、下矢印キーを押してスマート検索を開始し、もう一度文字を入力してリストから必要なコマンドを選択します。

魚の殻のスマート検索
構文の強調表示
コマンドを入力すると、構文が強調表示されます。 Bashとfishshellsで同じコマンドを入力すると、以下のスクリーンショットの違いがわかります。
Bash:

Bashシェルに構文の強調表示はありません
魚:

魚の殻での構文の強調表示
ご覧のとおり、魚の殻では「sudo」が強調表示されています。また、無効なコマンドは赤で表示されます デフォルトの色。
Webベースの構成
これは、フィッシュシェルのもう1つの優れた機能です。色を設定したり、魚のプロンプトを変更したり、関数、変数、履歴、キーバインディングをすべてWebページから表示したりできます。
Web構成インターフェイスを開始するには、次のように入力します。
fish_config

魚のウェブベースの構成
マニュアルページの補完
Bashやその他のシェルはプログラム可能な補完をサポートしていますが、インストールされているマニュアルページを解析して自動的に生成するのはfishだけです。
これを行うには、次を実行します:
fish_update_completions
サンプル出力は次のようになります:
Parsing man pages and writing completions to /home/sk/.local/share/fish/generated_completions/ 3435 / 3435 : zramctl.8.gz
あいさつ文を無効にする
デフォルトでは、起動時に魚があなたに挨拶します(魚へようこそ、フレンドリーなインタラクティブシェル)。このグリーティングメッセージが不要な場合は、無効にすることができます。これを行うには、魚の構成ファイルを編集します:
vi ~/.config/fish/config.fish
次の行を追加します:
set -g -x fish_greeting ''
魚の挨拶を無効にする代わりに、カスタムの挨拶メッセージを設定することもできます。
set -g -x fish_greeting 'Welcome to OSTechNix'
助けを得る
これは私の注意を引いたもう一つの印象的な機能です。ターミナルからデフォルトのWebブラウザで魚のドキュメントページを開くには、次のように入力します。
help
公式ドキュメントはデフォルトのブラウザで開かれます。また、マニュアルページを使用して、任意のコマンドのヘルプセクションを表示できます。
man fish
Fishをデフォルトのシェルとして設定
とても気に入りましたか?素晴らしい!デフォルトのシェルとして設定するだけです。これを行うには、 chshを使用します コマンド:
chsh -s /usr/bin/fish
ここでは、 / usr / bin / fish 魚の殻への道です。正しいパスがわからない場合は、次のコマンドが役立ちます。
which fish
新しいデフォルトのシェルを使用するには、ログアウトしてから再度ログインします。
Bash用に作成された多くのシェルスクリプトは、fishと完全には互換性がない可能性があることに注意してください。
Bashに戻すには、次を実行します:
bash
Bashをデフォルトのシェルとして永続的に使用する場合は、次を実行します。
chsh -s /bin/bash
そして、それは今のところすべてです。この段階で、魚の殻の使用法についての基本的な考え方を理解しているかもしれません。 Bashの代替品を探している場合は、魚が良い選択肢かもしれません。
推奨される読み物:
- オーマイフィッシュ!シェルを美しくする
- フィッシュシェルの履歴コマンドのタイムスタンプを有効にする
- LinuxでプライベートモードでFishShellを起動する方法