首頁 > 軟體

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

2020-06-16 16:58:41

Fish,友好的互動式 shellFriendly 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 和它的衍生版上,執行以下命令來安裝它。

  1. sudo pacman -S fish

CentOS 7 上以 root 執行以下命令:

  1. cd/etc/yum.repos.d/
  2. wget https://download.openSUSE.org/repositories/shells:fish:release:2/CentOS_7/shells:fish:release:2.repo
  3. yum install fish

在 CentOS 6 上以 root 執行以下命令:

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

在 Debian 9 上以 root 執行以下命令:

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

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

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

Fedora 26 上以 root 執行以下命令:

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

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

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

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

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

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

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

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

  1. zypper install fish

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

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

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

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

在 Ubuntu 和它的衍生版上:

  1. sudoapt-get update
  2. sudoapt-get install fish

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

 

用法

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

  1. $ fish
  2. 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 設定介面,只需輸入:

  1. fish_config

 

手冊頁補完

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

為此,請執行:

  1. fish_update_completions

範例輸出將是:

  1. Parsingman pages and writing completions to /home/sk/.local/share/fish/generated_completions/
  2. 3435/3435: zramctl.8.gz

 

禁用問候語

預設情況下,fish 在啟動時問候你(“Welcome to fish, the friendly interactive shell”)。如果你不想要這個問候訊息,可以禁用它。為此,編輯 fish 組態檔:

  1. vi~/.config/fish/config.fish

新增以下行:

  1. set-g -x fish_greeting ''

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

  1. set-g -x fish_greeting 'Welcome to OSTechNix'

 

獲得幫助

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

  1. help

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

  1. man fish

 

設定 fish 為預設 shell

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

  1. chsh-s /usr/bin/fish

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

  1. which fish

登出並且重新登入以使用新的預設 shell。

請記住,為 Bash 編寫的許多 shell 指令碼可能不完全相容 fish。

要切換回 Bash,只需執行:

  1. bash

如果你想 Bash 作為你的永久預設 shell,執行:

  1. 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中國 榮譽推出

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-12/149301.htm


IT145.com E-mail:sddin#qq.com