Bash 是使用最廣泛的 Shell,Zsh 則是開(kāi)發(fā)者圈里最受青睞的,但 Fish 往往被許多人忽視。
這絕非夸張之辭。Fish 的確是個(gè)備受忽視的 Shell,它對(duì)新手和資深的自由開(kāi)源軟件用戶(hù),都可能是極好的選擇。
Fish 提供了一系列吸引人的功能,使其具有鮮明優(yōu)勢(shì)。這其中包括了從語(yǔ)法高亮到縮寫(xiě)(我個(gè)人最喜歡的部分),這里面充滿了種種新奇。
下面,我要和大家分享一些我最青睞的 Fish Shell 特性。
1、語(yǔ)法高亮
在錯(cuò)誤的命令被執(zhí)行之前就識(shí)別出它們將大大節(jié)省你的時(shí)間,同時(shí)降低你的挫敗感。
現(xiàn)代的許多代碼編輯器都內(nèi)置了語(yǔ)法高亮功能,而 Fish 不僅將此功能內(nèi)置在了 Shell 中,而且對(duì)于 Linux 命令也同樣有效。
命令有誤?你會(huì)發(fā)現(xiàn)其被紅色高亮。同樣的,對(duì)于不符合上下文的參數(shù)和選項(xiàng)也是如此。
錯(cuò)誤高亮為紅色
2、自動(dòng)建議
當(dāng)你輸入命令時(shí),F(xiàn)ish Shell 會(huì)自動(dòng)推薦命令,然后你可以按照提示,使用Tab
鍵進(jìn)行相應(yīng)的補(bǔ)全操作。
Fish 自動(dòng)補(bǔ)全
隨著你的輸入,建議會(huì)以灰色顯示,使其更易于識(shí)別。如果整條建議都對(duì)你的胃口,你可以按右箭頭鍵來(lái)完成整個(gè)命令的補(bǔ)全。
3、命令選項(xiàng)的交互式手冊(cè)頁(yè)
這是一個(gè)炫酷的功能,你可以交互性地參考手冊(cè)頁(yè)完成命令選項(xiàng)的填寫(xiě)。
首先,你需要先解析手冊(cè)頁(yè),這可以通過(guò)以下命令來(lái)完成:
fish_update_completions
這會(huì)對(duì)手冊(cè)頁(yè)進(jìn)行解析。
手冊(cè)頁(yè)解析
現(xiàn)在,如果你輸入一個(gè)命令,添加連字符作為選項(xiàng),然后按下Tab
鍵,就能看到手冊(cè)頁(yè)給出的可能選項(xiàng)及其簡(jiǎn)短描述:
Fish 手冊(cè)頁(yè)幫助
你可以通過(guò)滾動(dòng)一覽這些選項(xiàng),并在閱讀了作用說(shuō)明后,從彈出的分頁(yè)器中進(jìn)行選擇。
要比直接輸入command -h
更便利一些對(duì)吧。
4、縮寫(xiě)優(yōu)于別名
在 Fish 里,縮寫(xiě)的作用就如同文本擴(kuò)展工具。你可以為一些常用的代碼設(shè)置易于調(diào)用的縮寫(xiě)。
比如說(shuō),我把sch
設(shè)為pacman -Ss
的縮寫(xiě),用以搜索軟件包。
abbr -a sch pacman -Ss
于是,每次我輸入sch
并按空格鍵后,它就會(huì)被替換成pacman -Ss
。
Fish Shell 縮寫(xiě)
你甚至可以把它寫(xiě)入配置文件,讓其成為永久設(shè)置。