宇宙第一 shell —— fish 入門

2 贊 回覆發表於2015-12-08

二逼青年用 bash,普通青年用 zsh,文藝青年用 fish

安裝以及配置

Linux 和 OS X 基本都可以通過源來安裝,實在不行就下載原始碼編譯,不難的。

安裝好第一步是修改 OS 預設 shell:

chsh -s /usr/bin/fish

然後就可以直接使用了,就是這麼簡單。你不需要面對 zsh 浩如煙海的配置檔案,也不需要去 github clone 一個 “Oh My Zsh”。

當然如果你實在想配置,輸入 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):

  3. 設定接受建議(第三條優勢)的快捷鍵:

    修改fish_prompt.fish,增加一條語句:bind \ej accept-autosuggestion。同時按下alt和j將接受建議。

優勢

語法高亮

不存在的命令會顯示為紅色。

 

萬用字元

整合find命令,遞迴搜尋神器。

 

智慧建議

當按下幾個字母后,fish會有智慧建議,按下向右箭頭將接受建議。

 

Tab補全

如果補全項超過1個,會列出全部以供選擇。

 

變數

fish是通過set來代替“=”對變數賦值的。

將某目錄加入到PATH中也是用set(配置config.sh):

set PATH $PATH /home/mountain/shell

 

Exports

fish沒有export命令,需要用set -x來代替。如果需要擦除變數,就執行set -e。

 

 

列表

有些變數有多個值,例如$PATHfish會把所有值組裝成一個列表,可以迭代或者通過下標訪問。

 

命令替換

用法很簡單,把命令放在括號裡即可。

 

語法糖

fish 的常用關鍵字(if、switch、function 等)比 bash 高階、實用很多,但是考慮到公司的生產環境根本不可能安裝 fish,導致指令碼無法移植,所以對於這部分只能忍痛放棄。

總結

這篇文章雖然字數不多,但是凝結了我不少心血,基本把官方文件全翻譯了一遍,然後提取了簡單實用的功能分享給大家,還有很多牛逼的功能限於我能力有限就不在這班門弄斧了。

相關文章