在Mac系統(tǒng)下熟練使用命令行可以使工作更高效,幾乎所有的操作都可以用命令行來完成恢口。但這些操作的前提是需要記住各種命令鞠绰,而且系統(tǒng)原生的終端沒有自動補全功能绳锅,這讓用慣了Xcode的我們尤其不習慣。另外典奉,命令行下路徑的切換也顯得較為繁瑣躺翻。工欲善其事必先利其器,本文將介紹一些工具和設(shè)置卫玖,讓命令行使用起來更方便更智能公你。
自動補全
首先我們來給終端命令行加上自動補全的功能,通過Homebrew安裝bash_completion
即可假瞬。當然需要先安裝brew
:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
在命令行中輸入上述命令安裝Homebrew
. 這是一款Mac OS平臺下的軟件包管理工具陕靠,擁有安裝、卸載脱茉、更新剪芥、查看、搜索等眾多功能琴许。通過一條指令税肪,就可以實現(xiàn)包管理,而不用關(guān)心各種依賴和文件路徑的情況榜田。
Homebrew 會將軟件安裝到獨立目錄寸认,并將文件鏈接至/usr/local路徑
安裝完Homebrew
后就可以使用它來安裝bash_completion
了,在終端中輸入如下命令:
brew install bash-completion
安裝完成后會提示:
# Add the following lines to your ~/.bash_profile:
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
按照提示將上述語句(最后三行)復制到.bash_profile
文件中串慰。需要注意的是.bash_profile
為隱藏文件,所以要先顯示所有文件唱蒸,然后在Finder中按快捷鍵Command+Shift+G
跳轉(zhuǎn)到該文件邦鲫。
默認brew會安裝bash-completion,可以先通過
brew list
查看,沒有再執(zhí)行上面的安裝步驟庆捺。
完成上面的操作之后就可以使用自動補全了古今,比如我們在某個路徑下要打開某個文件,但是忘記那個文件的名字了滔以,或者只記得前幾個字母捉腥,有了自動補全,我們只需要輸入open
然后直接按tab
鍵就會出現(xiàn)目錄下的文件了你画,然后繼續(xù)按tab
選擇你需要打開的文件名直接回車確認就可以了抵碟。效果如下:
除了系統(tǒng)自有的一些命令補全外,我們還可以把git
的常用命令也加入到自動補全里面坏匪。首先到git
的主頁下載contrib/completion/
目錄下的git-completion.bash
文件拟逮,并將文件放到個人主目錄下:
然后修改.bash_profile
文件,在其中添加下列內(nèi)容:
mv git-completion.bash ~/.git_completion.bash
# Add to your .bash_profile:
source ~/.git_completion.bash
完成后重新啟動下命令行終端就可以使用git
的自動補全了适滓,效果如下所示:
路徑切換
在Mac下使用命令行切換路徑通常是使用cd
命令敦迄,比如在命令行中輸入:
cd /Users/Ryan/iOSDev/Documents
即可跳轉(zhuǎn)到Documents
目錄下,但是繁瑣的地方在于每次都需要輸入完整路徑凭迹。能不能讓命令行記住常用的一些路徑且快速切換呢罚屋?可以!使用autojump
就可以實現(xiàn)嗅绸。autojump
是一個命令行工具,它允許你直接跳轉(zhuǎn)到你常用的目錄,而不受當前所在目錄的限制脾猛。
autojump
的安裝環(huán)境推薦使用zsh
, zsh
是shell
的一種,在Mac OS下默認的shell
為bash
, 但其實zsh
是更強大的shell
且其完全兼容bash
, 我們先來看下怎么安裝并切換到zsh
:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
在命令行中輸入上述命令即可安裝zsh
, 安裝成功后我們需要將系統(tǒng)的默認shell
設(shè)置為zsh
:
chsh -s /bin/zsh
這個命令會重啟shell
, 完成后我們在命令行輸入:
echo $SHELL
即可查看當前使用的是哪個shell
(bash
or zsh
).
shell其實就是一個c語言編寫的程序朽砰,我們在命令行輸入的命令尖滚,都是經(jīng)過shell解釋后傳送給操作系統(tǒng)(內(nèi)核)執(zhí)行。
切換shell
之后我們可以來安裝autojump
了瞧柔,還是和上面一樣使用brew
來安裝漆弄,在命令行中輸入如下命令:
brew install autojump
安裝完成后,系統(tǒng)用戶根目錄下會出現(xiàn).zshrc
文件(和上面的.bash_profile
同一個目錄)造锅,跳轉(zhuǎn)到這個文件并用文本編輯器打開撼唾,在其中找到 plugins=
, 修改為:
plugins=(
git autojump
)
之后新起一行,添加:
[[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh
修改完內(nèi)容后.zshrc
如下圖所示:
安裝完后我們就可以使用autojump
來快速跳轉(zhuǎn)路徑了哥蔚,在autojump
中使用j
(別名)來代替cd
指令倒谷,比如我們想跳轉(zhuǎn)到一個路徑,但是我們記不得路徑全稱糙箍,只記得里面有perfect
這個單詞渤愁,那么就直接在命令行輸入j perfect
然后按tab
鍵,就會出來包含perfect
的路徑深夯,繼續(xù)按tab
鍵選擇需要進入的路徑再回車確認即可切換到該路徑下:
autojump
會對訪問過的文件和文件夾按照使用頻率排序抖格,所以想通過autojump
快速跳轉(zhuǎn)的路徑必須是之前訪問過已經(jīng)被autojump
記錄到數(shù)據(jù)庫中的路徑诺苹,這樣它才會再按照頻率列出文件和文件夾。
上文只是對autojump
基本功能的介紹雹拄,至于它的詳細功能列表可以到其主頁上查看收奔。這邊就不再贅述了。另外還一個和功能類似的快速跳轉(zhuǎn)工具fasd
, 感興趣的話也可以自行了解下滓玖。
除此之外坪哄,還有一個賴人軟件
TermHere
, 下載
安裝后在任意位置(文件夾上或者文件夾里面目錄中)右擊鼠標,會發(fā)現(xiàn)多了一個菜單項「New Terminal Here」
點擊它就會出現(xiàn)終端窗口势篡,并且當前目錄就是你所指的位置翩肌。
命令別名
有時候命令行的命令太長了,我們可以使用一個別名(alias)來代替殊霞,類似于程序中的宏摧阅。比如我們顯示隱藏文件的命令為:
defaults write com.apple.finder AppleShowAllFiles true ; killall Finder
這個命令太長了,我們可以添加一個別名來代替绷蹲。打開.zshrc
文件棒卷,在其中添加下列內(nèi)容:
alias sfy="defaults write com.apple.finder AppleShowAllFiles true ; killall Finder"
alias sfn="defaults write com.apple.finder AppleShowAllFiles false ; killall Finder"
需要注意的是等號兩邊均無空格,指令名稱中如有空格祝钢,需用引號包裹比规,具體格式為:
alias [別名]='[指令名稱]'
添加完后如下圖所示,我們添加了兩個別名sfy
和sfn
分別表示顯示隱藏文件和不顯示隱藏文件拦英。在命令行中輸入這兩個命令和上面的長串命令同等功效蜒什。
保存并關(guān)閉.zshrc
文件,重新啟動命令行后執(zhí)行別名指令疤估,效果如下所示:
如果沒有切換過shell, 還是在系統(tǒng)默認的bash下灾常,則需要把別名的內(nèi)容添加到bash所對應(yīng)的.bash_profile文件里面。