安裝以及配置
Linux 和 OS X 基本都可以通過源來安裝,實(shí)在不行就下載源碼編譯,不難的。
Ubuntu的話就是這樣:
sudo apt-get install fish
從bash進(jìn)入fish直接輸入fish就行了
安裝好第一步是修改 OS 默認(rèn) shell:
chsh -s /usr/bin/fish
然后就可以直接使用了,就是這么簡單。你不需要面對 zsh 浩如煙海的配置文件,也不需要去 github clone 一個(gè) “Oh My Zsh”。
當(dāng)然如果你實(shí)在想配置,輸入 fish_config 命令會啟動 web 管理界面。
什么?逼格太低,非要手動配置。OK, ~/.config/fish/config.fish這就是 fish 的配置文件,類似于 bash 的.bashrc。
我喜歡配置三件東西:
1.問候語(配置config.fish):
set fish_greeting 'Talk is cheap. Show me the code.'
2.命令行提示(在web界面配置,完成后會生成~/.config/fish/functions/fish_prompt.fish):
![](/d/20211018/3d0a7107b1b9adecbec75b580778c918.gif)
3.設(shè)置接受建議(第三條優(yōu)勢)的快捷鍵:
修改fish_prompt.fish,增加一條語句:bind \ej accept-autosuggestion。同時(shí)按下alt和j將接受建議。
優(yōu)勢
語法高亮
不存在的命令會顯示為紅色。
![](/d/20211018/d3c48386c065efe4e932d0f77a6fd46b.gif)
![](/d/20211018/1b630b438fff91788dab54f948bcc960.gif)
通配符
集成find命令,遞歸搜索神器。
![](/d/20211018/a15b94a50a97fcb69f9c4e7ca3538aa8.gif)
智能建議
當(dāng)按下幾個(gè)字母后,fish會有智能建議,按下向右箭頭將接受建議。
![](/d/20211018/a92b2a7800492e13d2d95d0b2b07f4eb.gif)
Tab補(bǔ)全
如果補(bǔ)全項(xiàng)超過1個(gè),會列出全部以供選擇。
![](/d/20211018/8b8d6ceeb417412f7c391ad8d1bb383c.gif)
變量
fish是通過set來代替“=”對變量賦值的。
![](/d/20211018/c0b0f026601cde27f8400bcc5921ef0c.gif)
將某目錄加入到PATH中也是用set(配置config.sh):
set PATH $PATH /home/mountain/shell
Exports
fish沒有export命令,需要用set -x來代替。如果需要擦除變量,就執(zhí)行set -e。
![](/d/20211018/df1d00f4bcb4b03a843b1f1edc0468f4.gif)
![](/d/20211018/313cf6c95f19ec3c14b53729d745b29e.gif)
列表
有些變量有多個(gè)值,例如$PATH,fish會把所有值組裝成一個(gè)列表,可以迭代或者通過下標(biāo)訪問。
![](/d/20211018/4a700d87f4fd4687a2c79e6bea5591ea.gif)
命令替換
用法很簡單,把命令放在括號里即可。
語法糖
fish 的常用關(guān)鍵字(if、switch、function 等)比 bash 高端、實(shí)用很多,但是考慮到公司的生產(chǎn)環(huán)境根本不可能安裝 fish,導(dǎo)致腳本無法移植,所以對于這部分只能忍痛放棄。
![](/d/20211018/6e00570c796633330113cd7c8604e7a3.gif)