2021-05-12 14:32:11
如何在 Linux 上安裝友好的互動式 shell:Fish
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 和它的衍生版上,執行以下命令來安裝它。
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'deb http://download.opensuse.org/repositories/shells:/fish:/release:/2/Debian_9.0/ /'>/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'deb http://download.opensuse.org/repositories/shells:/fish:/release:/2/Debian_8.0/ /'>/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 和它的衍生版上:
sudoapt-get update
sudoapt-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
範例輸出將是:
Parsingman 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 ''
你也可以設定任意自定義的問候語,而不是禁用 fish 問候。
set-g -x fish_greeting 'Welcome to OSTechNix'
獲得幫助
這是另一個吸引我的令人印象深刻的功能。要在終端的預設 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/
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-12/149301.htm
相關文章