二逼青年用bash,普通青年用zsh,文藝青年用fish。
首先鄭重聲明B人的兩個技術癖好:
- Windows黑,以后推薦的所有工具都不會針對windows系統進行說明。
- 主流黑。凡是大部分人都知道的東西,我盡量不用,比如zsh,只為裝逼。
安裝以及配置
Linux和OS X基本都可以通過源來安裝,實在不行就下載源碼編譯,不難的。
安裝好第一步是修改OS默認shell:
sudo -u [user] chsh -s /usr/bin/fish
OS X系統要確認/etc/shells文件包含/usr/local/bin/fish。
然后就可以直接使用了,就是這么簡單。你不需要面對zsh浩如煙海的配置文件,也不需要去github clone一個“Oh My Zsh”。
當然如果你實在想配置,輸入fish_config命令會啟動web管理界面。
什么?逼格太低,非要手動配置。OK, ~/.config/fish/config.fish這就是fish的配置文件,類似于bash的.bashrc。
我喜歡配置三件東西:
-
問候語(配置config.fish):
set fish_greeting 'Talk is cheap. Show me the code.'
-
X OS系統vs code命令行工具(配置config.fish)
function code set location "$PWD/$argv" open -n -b "com.microsoft.VSCode" --args $location end
-
命令行提示(在web界面配置,完成后會生成~/.config/fish/functions/fish_prompt.fish):
Selection_001.png -
設置接受建議(第三條優勢)的快捷鍵:
修改fish_prompt.fish,增加一條語句:bind \ej accept-autosuggestion。同時按下alt和j將接受建議。
優勢
-
語法高亮
不存在的命令會顯示為紅色。
Selection_001.pngSelection_002.png -
通配符
集成find命令,遞歸搜索神器。
Selection_003.png -
智能建議
當按下幾個字母后,fish會有智能建議,按下向右箭頭將接受建議。
Selection_004.png -
Tab補全
如果補全項超過1個,會列出全部以供選擇。
Selection_005.png -
變量
fish是通過set來代替“=”對變量賦值的。
Selection_006.png
將某目錄加入到PATH中也是用set(配置config.fish):
set PATH $PATH /home/mountain/shell
-
Exports
fish沒有export命令,需要用set -x來代替。如果需要擦除變量,就執行set -e。
Selection_007.pngSelection_008.png -
列表
有些變量有多個值,例如$PATH,fish會把所有值組裝成一個列表,可以迭代或者通過下標訪問。
Selection_001.png -
命令替換
用法很簡單,把命令放在括號里即可。
Selection_002.png -
語法糖
fish的常用關鍵字(if、switch、function等)比bash高端、實用很多,但是考慮到公司的生產環境根本不可能安裝fish,導致腳本無法移植,所以對于這部分只能忍痛放棄。
總結
這篇文章雖然字數不多,但是凝結了我不少心血,基本把官方文檔全翻譯了一遍,然后提取了簡單實用的功能分享給大家,還有很多牛逼的功能限于我能力有限就不在這班門弄斧了。