不少作前端開發的朋友都很鍾愛使用Mac電腦,同大多數Linux系統同樣Mac自帶的命令行是Bash提供的,是一種很基本的Shell。今天咱們來了解一款高級的shell工具 -- Fish shellhtml
和Bash相同,Fish shell 也是一種能夠在Mac和Linux等系統使用的Shell。前端
和Bash不一樣,Fish shell 具備很好的易用性,可配置性等特色。git
配置好Fish shell以後,不少的鼠標和觸控板的操做,均可以在命令終端中完成了。真正作到彈指如飛,揮灑自如。shell
開箱即用npm
你們能夠從 Fish shell 官網 直接下載安裝包,或者經過homebrew安裝。安裝好以後無需配置,就能夠直接使用,暢享其諸多好處了。bash
brew install fish //homebrew安裝fishshell的命令
複製代碼
自動提示app
Fish shell 有很好的命令提示功能。 下圖爲合法命令能夠自動提示補全, 函數
Fish shell 的命令歷史記錄也很強大。 使用過的命令,當再次輸入的時候,能夠自動提示補全上次使用的參數。 工具
圖形化的配置頁面ui
運行 fish_config 命令,就能夠喚起 fish 的配置頁面。以下圖:
我最經常使用的前三個標籤頁:其中color頁用於配置顏色主題;prompt頁用於配置命令行的前綴;function頁展現已經配置的函數列表,這也是我認爲fish shell最強大的地方。
Fish shell 的函數十分強大,幾乎能夠知足你的全部需求。
Fish shell 的函數本質上是一個可執行腳本。容許你經過命令行輸入函數名來執行腳本中的命令。聽起來很像其餘shell中的alias, 但它遠比alias功能豐富。
函數的建立方法十分簡單,只需進入 Fish shell 的配置目錄(~/.config/fish/)並建立config.fish文件。直接在其中編寫function就能夠了。在命令行直接輸入函數名可調用函數。
函數語法能夠參考阮一峯老師關於 Fish shell 的博文。
分享一個我寫的一個很簡單的函數。
function push
echo "+++++git pull ++++++++++++++"
git pull
echo "+++++git add .++++++++++++++"
git add .
echo "+++++git commit ++++++++++++"
if test -d $argv
git commit -m (date +%Y-%m-%d_%H:%M:%S)
else
git commit -m $argv
end
echo "+++++git push +++++++++++++++"
git push
echo "++++++Finish+++++++++++++++++"
end
複製代碼
push函數的功能是用一個push 命令完成向git上提交代碼的一連串操做。值得注意的是,能夠在push能夠接收一個參數,做爲commit時候的註釋。若是不提供參數,則默認將當前時間做爲commit的註釋。調用方法以下:
# 添加參數,參數中不能有空格
$ push your_first_commit
# 不添加參數,以當前時間爲commit註釋
$ push
複製代碼
最後,下面貼出個人config.fish文件, 以供參考。其中定義了用的比較順手的幾個函數,以及更改了環境變量的設置。
# 快速進入經常使用工做目錄
function cdp
cd /Users/gavin/Documents/project
end
# 快速提交代碼,使用方法:
# 能夠添加一個參數做爲 git commit 的註釋
# 若是不添加參數會將當前時間做爲 git commit 的註釋
function push
echo "+++++git pull ++++++++++++++"
git pull
echo "+++++git add .++++++++++++++"
git add .
echo "+++++git commit ++++++++++++"
if test -d $argv
git commit -m (date +%Y-%m-%d_%H:%M:%S)
else
git commit -m $argv
end
echo "+++++git push +++++++++++++++"
git push
echo "++++++Finish+++++++++++++++++"
end
# 給 npm start 作的別名
function ss
npm start
end
# 給 npm install 作的別名
function sd
npm install
end
# 用 Vscode 打開當前目錄
function oc
open . -a /Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron
end
# 用 sublime text 打開當前目錄
function os
open . -a /Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text
end
# 在Finder中打開當前目錄
function oo
open .
end
# 添加環境變量
set PATH /Users/gavin/tools/flutter/bin $PATH
複製代碼
感謝您的時間,也歡迎你們的建議和意見,謝謝~