Fish:一個(gè)友好的交互式Shell
你是否正在尋找 bash 的替代品?你是否在尋找更人性化的東西?不用再看了,因?yàn)槟銊偘l(fā)現(xiàn)了 fish!
Fish(友好的交互式 shell)是一個(gè)智能且用戶友好的命令行 shell,可在 Linux、MacOS 和其他操作系統(tǒng)上運(yùn)行。可以將其用于終端的日常工作和腳本編寫。用 fish 編寫的腳本比相同的 bash 版本具有更少的神秘性。
Fish 的用戶友好功能
- 建議:Fish 會(huì)提示你之前寫過(guò)的命令。當(dāng)經(jīng)常輸入相同命令時(shí),這樣可以提高生產(chǎn)率。
- 健全的腳本能力:Fish 避免使用那些隱秘字符。這提供了更清晰和更友好的語(yǔ)法。
- 基于手冊(cè)頁(yè)的補(bǔ)全:Fish 會(huì)根據(jù)命令的手冊(cè)頁(yè)自動(dòng)補(bǔ)全參數(shù)。
- 語(yǔ)法高亮:Fish 會(huì)高亮顯示命令語(yǔ)法以使其在視覺(jué)上友好。
安裝
Fedora 工作站
使用 dnf
命令安裝 fish:
$ sudo dnf install fish
安裝 util-linux-user
包,然后使用適當(dāng)?shù)膮?shù)運(yùn)行 chsh
(更改 shell 程序)命令,將 fish 設(shè)置為默認(rèn) shell 程序:
$ sudo dnf install util-linux-user
$ chsh -s /usr/bin/fish
你需要注銷然后重新登錄,更改才能生效。
Fedora Silverblue
由于它不是 GUI 應(yīng)用,因此你需要使用 rpm-ostree
將其加到層內(nèi)。使用以下命令在 Fedora Silverblue 上安裝 fish:
$ rpm-ostree install fish
在 Fedora Silverblue 上,你需要重啟 PC 才能切換到新的 ostree 鏡像。
如果你想在 Fedora Silverblue 用 fish 作為主要 shell,最簡(jiǎn)單的方法是更新 /etc/passwd
文件。找到你的用戶,并將 /bin/bash
更改為 /usr/bin/fish
。
你需要 root 權(quán)限來(lái)編輯 /etc/passwd
文件。另外,你需要注銷并重新登錄才能使更改生效。
配置
fish 的用戶配置文件在 ~/.config/fish/config.fish
。要更改所有用戶的配置,請(qǐng)編輯 /etc/fish/config.fish
。
用戶配置文件必須手動(dòng)創(chuàng)建。安裝腳本不會(huì)創(chuàng)建 ~/.config/fish/config.fish
。
以下是兩個(gè)個(gè)配置示例以及它們的 bash 等效項(xiàng),以幫助你入門:
創(chuàng)建別名
~/.bashrc
:alias ll='ls -lh'
~/.config/fish/config.fish
:alias ll='ls -lh'
設(shè)置環(huán)境變量
~/.bashrc
:export PATH=$PATH:~/bin
~/.config/fish/config.fish
:set -gx PATH $PATH ~/bin
使用 fish 工作
將 fish 配置為默認(rèn) shell 程序后,命令提示符將類似于下圖所示。如果尚未將 fish 配置為默認(rèn) shell,只需運(yùn)行 fish
命令以在當(dāng)前終端會(huì)話中啟動(dòng)。
在你開(kāi)始輸入命令時(shí),你會(huì)注意到語(yǔ)法高亮顯示:
很酷,不是嗎?🙂
你還將在輸入時(shí)看到建議的命令。例如,再次開(kāi)始輸入上一個(gè)命令:
注意輸入時(shí)出現(xiàn)的灰色文本?;疑谋撅@示建議之前編寫的命令。要自動(dòng)補(bǔ)全,只需按 CTRL+F
。
通過(guò)輸入連接號(hào)(–
)然后使用 TAB
鍵,它會(huì)根據(jù)前面命令的手冊(cè)頁(yè)獲取參數(shù)建議:
如果你按一次 TAB
,它將顯示前幾個(gè)建議(或所有建議,如果只有少量參數(shù)可用)。如果再次按 TAB
,它將顯示所有建議。如果連續(xù)三次按 TAB
,它將切換到交互模式,你可以使用箭頭鍵選擇一個(gè)參數(shù)。
除此之外,fish 的工作與大多數(shù)其他 shell 相似。其他差異已經(jīng)寫在文檔中。因此,找到你可能感興趣的其他功能應(yīng)該不難。
讓 fish 變得更強(qiáng)大
使用 powerline 使 fish 變得更強(qiáng)大。Powerline 可以為 fish 的界面添加命令執(zhí)行時(shí)間、彩色化 git 狀態(tài)、當(dāng)前 git 分支等。
在安裝 powerline 之前,你必須先安裝 Oh My Fish。Oh My Fish 擴(kuò)展了 fish 的核心基礎(chǔ)架構(gòu),以支持安裝其他插件。安裝 Oh My Fish 的最簡(jiǎn)單方法是使用 curl
命令:
> curl -L https://get.oh-my.fish | fish
如果你不想直接將安裝命令管道傳給 fish
,請(qǐng)參見(jiàn) Oh My Fish 的 README 的安裝部分,以了解其他安裝方法。
Fish 的 powerline 插件是 bobthefish。Bobthefish 需要 powerline-fonts
包。
在 Fedora 工作站上:
> sudo dnf install powerline-fonts
在 Fedora Silverblue 上:
> rpm-ostree install powerline-fonts
在 Fedora Silverblue 上,你必須重啟以完成字體的安裝。
安裝 powerline-fonts
之后,安裝 bobthefish
:
> omf install bobthefish
現(xiàn)在你可以通過(guò) powerline 體驗(yàn) fish 的全部奇妙之處: