Linux中國

如何在 Linux 上安裝友好的互動式 shell:Fish

Fish, 友好的互動式 shell Friendly Interactive SHell 的縮寫,它是一個適於裝備於類 Unix 系統的智能而用戶友好的 shell。Fish 有著很多重要的功能,比如自動建議、語法高亮、可搜索的歷史記錄(像在 bash 中 CTRL+r)、智能搜索功能、極好的 VGA 顏色支持、基於 web 的設置方式、完善的手冊頁和許多開箱即用的功能。儘管安裝並立即使用它吧。無需更多其他配置,你也不需要安裝任何額外的附加組件/插件!

在這篇教程中,我們討論如何在 Linux 中安裝和使用 fish shell。

安裝 Fish

儘管 fish 是一個非常用戶友好的並且功能豐富的 shell,但並沒有包括在大多數 Linux 發行版的默認倉庫中。它只能在少數 Linux 發行版中的官方倉庫中找到,如 Arch Linux,Gentoo,NixOS,和 Ubuntu 等。然而,安裝 fish 並不難。

在 Arch Linux 和它的衍生版上,運行以下命令來安裝它。

sudo pacman -S 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 9 上以 root 運行以下命令:

wget -nv https://download.opensuse.org/repositories/shells:fish:release:2/Debian_9.0/Release.key -O Release.key
apt-key add - < Release.key
echo &apos;deb http://download.opensuse.org/repositories/shells:/fish:/release:/2/Debian_9.0/ /&apos; > /etc/apt/sources.list.d/fish.list
apt-get update
apt-get install fish

在 Debian 8 上以 root 運行以下命令:

wget -nv https://download.opensuse.org/repositories/shells:fish:release:2/Debian_8.0/Release.key -O Release.key
apt-key add - < Release.key
echo &apos;deb http://download.opensuse.org/repositories/shells:/fish:/release:/2/Debian_8.0/ /&apos; > /etc/apt/sources.list.d/fish.list
apt-get update
apt-get install fish

在 Fedora 26 上以 root 運行以下命令:

dnf config-manager --add-repo https://download.opensuse.org/repositories/shells:fish:release:2/Fedora_26/shells:fish:release:2.repo
dnf install fish

在 Fedora 25 上以 root 運行以下命令:

dnf config-manager --add-repo https://download.opensuse.org/repositories/shells:fish:release:2/Fedora_25/shells:fish:release:2.repo
dnf install fish

在 Fedora 24 上以 root 運行以下命令:

dnf config-manager --add-repo https://download.opensuse.org/repositories/shells:fish:release:2/Fedora_24/shells:fish:release:2.repo
dnf install fish

在 Fedora 23 上以 root 運行以下命令:

dnf config-manager --add-repo https://download.opensuse.org/repositories/shells:fish:release:2/Fedora_23/shells:fish:release:2.repo
dnf install fish

在 openSUSE 上以 root 運行以下命令:

zypper install fish

在 RHEL 7 上以 root 運行以下命令:

cd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/shells:fish:release:2/RHEL_7/shells:fish:release:2.repo
yum install fish

在 RHEL-6 上以 root 運行以下命令:

cd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/shells:fish:release:2/RedHat_RHEL-6/shells:fish:release:2.repo
yum install fish

在 Ubuntu 和它的衍生版上:

sudo apt-get update
sudo apt-get install fish

就這樣了。是時候探索 fish shell 了。

用法

要從你默認的 shell 切換到 fish,請執行以下操作:

$ fish
Welcome to fish, the friendly interactive shell

你可以在 ~/.config/fish/config.fish 上找到默認的 fish 配置(類似於 .bashrc)。如果它不存在,就創建它吧。

自動建議

當我輸入一個命令,它以淺灰色自動建議一個命令。所以,我需要輸入一個 Linux 命令的前幾個字母,然後按下 tab 鍵來完成這個命令。

如果有更多的可能性,它將會列出它們。你可以使用上/下箭頭鍵從列表中選擇列出的命令。在選擇你想運行的命令後,只需按下右箭頭鍵,然後按下 ENTER 運行它。

無需 CTRL+r 了!正如你已知道的,我們通過按 CTRL+r 來反向搜索 Bash shell 中的歷史命令。但在 fish shell 中是沒有必要的。由於它有自動建議功能,只需輸入命令的前幾個字母,然後從歷史記錄中選擇已經執行的命令。很酷,是吧。

智能搜索

我們也可以使用智能搜索來查找一個特定的命令、文件或者目錄。例如,我輸入一個命令的一部分,然後按向下箭頭鍵進行智能搜索,再次輸入一個字母來從列表中選擇所需的命令。

語法高亮

當你輸入一個命令時,你將注意到語法高亮。請看下面當我在 Bash shell 和 fish shell 中輸入相同的命令時截圖的區別。

Bash:

Fish:

正如你所看到的,sudo 在 fish shell 中已經被高亮顯示。此外,默認情況下它將以紅色顯示無效命令。

基於 web 的配置方式

這是 fish shell 另一個很酷的功能。我們可以設置我們的顏色、更改 fish 提示符,並從網頁上查看所有功能、變數、歷史記錄、鍵綁定。

啟動 web 配置介面,只需輸入:

fish_config

手冊頁補完

Bash 和 其它 shells 支持可編程的補完,但只有 fish 可以通過解析已安裝的手冊來自動生成它們。

為此,請運行:

fish_update_completions

實例輸出將是:

Parsing man pages and writing completions to /home/sk/.local/share/fish/generated_completions/
 3435 / 3435 : zramctl.8.gz

禁用問候語

默認情況下,fish 在啟動時問候你(「Welcome to fish, the friendly interactive shell」)。如果你不想要這個問候消息,可以禁用它。為此,編輯 fish 配置文件:

vi ~/.config/fish/config.fish

添加以下行:

set -g -x fish_greeting &apos;&apos;

你也可以設置任意自定義的問候語,而不是禁用 fish 問候。

set -g -x fish_greeting &apos;Welcome to OSTechNix&apos;

獲得幫助

這是另一個吸引我的令人印象深刻的功能。要在終端的默認 web 瀏覽器中打開 fish 文檔頁面,只需輸入:

help

官方文檔將會在你的默認瀏覽器中打開。另外,你可以使用手冊頁來顯示任何命令的幫助部分。

man fish

設置 fish 為默認 shell

非常喜歡它?太好了!設置它作為默認 shell 吧。為此,請使用命令 chsh

chsh -s /usr/bin/fish

在這裡,/usr/bin/fish 是 fish shell 的路徑。如果你不知道正確的路徑,以下命令將會幫助你:

which fish

註銷並且重新登錄以使用新的默認 shell。

請記住,為 Bash 編寫的許多 shell 腳本可能不完全兼容 fish。

要切換回 Bash,只需運行:

bash

如果你想 Bash 作為你的永久默認 shell,運行:

chsh -s /bin/bash

各位,這就是全部了。在這個階段,你可能會得到一個有關 fish shell 使用的基本概念。 如果你正在尋找一個Bash的替代品,fish 可能是一個不錯的選擇。

Cheers!

資源:

via: https://www.ostechnix.com/install-fish-friendly-interactive-shell-linux/

作者:SK 譯者:kimii 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國