Mac命令行效率提升利器篇

在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)到該文件邦鲫。

image

默認brew會安裝bash-completion,可以先通過brew list查看,沒有再執(zhí)行上面的安裝步驟庆捺。

完成上面的操作之后就可以使用自動補全了古今,比如我們在某個路徑下要打開某個文件,但是忘記那個文件的名字了滔以,或者只記得前幾個字母捉腥,有了自動補全,我們只需要輸入open然后直接按tab鍵就會出現(xiàn)目錄下的文件了你画,然后繼續(xù)按tab選擇你需要打開的文件名直接回車確認就可以了抵碟。效果如下:

image

除了系統(tǒng)自有的一些命令補全外,我們還可以把git的常用命令也加入到自動補全里面坏匪。首先到git主頁下載contrib/completion/目錄下的git-completion.bash文件拟逮,并將文件放到個人主目錄下:

image

然后修改.bash_profile文件,在其中添加下列內(nèi)容:

mv git-completion.bash ~/.git_completion.bash
# Add to your .bash_profile:
source ~/.git_completion.bash

完成后重新啟動下命令行終端就可以使用git的自動補全了适滓,效果如下所示:

image

路徑切換

在Mac下使用命令行切換路徑通常是使用cd命令敦迄,比如在命令行中輸入:

cd /Users/Ryan/iOSDev/Documents 

即可跳轉(zhuǎn)到Documents目錄下,但是繁瑣的地方在于每次都需要輸入完整路徑凭迹。能不能讓命令行記住常用的一些路徑且快速切換呢罚屋?可以!使用autojump就可以實現(xiàn)嗅绸。autojump是一個命令行工具,它允許你直接跳轉(zhuǎn)到你常用的目錄,而不受當前所在目錄的限制脾猛。

autojump的安裝環(huán)境推薦使用zsh, zshshell的一種,在Mac OS下默認的shellbash, 但其實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如下圖所示:

image

安裝完后我們就可以使用autojump來快速跳轉(zhuǎn)路徑了哥蔚,在autojump中使用j(別名)來代替cd指令倒谷,比如我們想跳轉(zhuǎn)到一個路徑,但是我們記不得路徑全稱糙箍,只記得里面有perfect這個單詞渤愁,那么就直接在命令行輸入j perfect然后按tab鍵,就會出來包含perfect的路徑深夯,繼續(xù)按tab鍵選擇需要進入的路徑再回車確認即可切換到該路徑下:

image

autojump會對訪問過的文件和文件夾按照使用頻率排序抖格,所以想通過autojump快速跳轉(zhuǎn)的路徑必須是之前訪問過已經(jīng)被autojump記錄到數(shù)據(jù)庫中的路徑诺苹,這樣它才會再按照頻率列出文件和文件夾。

上文只是對autojump基本功能的介紹雹拄,至于它的詳細功能列表可以到其主頁上查看收奔。這邊就不再贅述了。另外還一個和功能類似的快速跳轉(zhuǎn)工具fasd, 感興趣的話也可以自行了解下滓玖。

除此之外坪哄,還有一個賴人軟件
TermHere, 下載
安裝后在任意位置(文件夾上或者文件夾里面目錄中)右擊鼠標,會發(fā)現(xiàn)多了一個菜單項「New Terminal Here」點擊它就會出現(xiàn)終端窗口势篡,并且當前目錄就是你所指的位置翩肌。

image

命令別名

有時候命令行的命令太長了,我們可以使用一個別名(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 [別名]='[指令名稱]'

添加完后如下圖所示,我們添加了兩個別名sfysfn分別表示顯示隱藏文件和不顯示隱藏文件拦英。在命令行中輸入這兩個命令和上面的長串命令同等功效蜒什。

image

保存并關(guān)閉.zshrc文件,重新啟動命令行后執(zhí)行別名指令疤估,效果如下所示:

image

如果沒有切換過shell, 還是在系統(tǒng)默認的bash下灾常,則需要把別名的內(nèi)容添加到bash所對應(yīng)的.bash_profile文件里面。

參考文章

  1. MAC命令行自動補全(git/maven)
  2. Homebrew介紹和使用
  3. mac安裝autojump
  4. Mac添加命令別名
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末铃拇,一起剝皮案震驚了整個濱河市钞瀑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌慷荔,老刑警劉巖雕什,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異显晶,居然都是意外死亡贷岸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門磷雇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來偿警,“玉大人,你說我怎么就攤上這事唯笙』Ь矗” “怎么了落剪?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長尿庐。 經(jīng)常有香客問我,道長呢堰,這世上最難降的妖魔是什么抄瑟? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮枉疼,結(jié)果婚禮上皮假,老公的妹妹穿的比我還像新娘。我一直安慰自己骂维,他們只是感情好惹资,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著航闺,像睡著了一般褪测。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上潦刃,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天侮措,我揣著相機與錄音,去河邊找鬼乖杠。 笑死分扎,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的胧洒。 我是一名探鬼主播畏吓,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼卫漫!你這毒婦竟也來了菲饼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤汛兜,失蹤者是張志新(化名)和其女友劉穎巴粪,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體粥谬,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡肛根,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了漏策。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片派哲。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖掺喻,靈堂內(nèi)的尸體忽然破棺而出芭届,到底是詐尸還是另有隱情储矩,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布褂乍,位于F島的核電站持隧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏逃片。R本人自食惡果不足惜屡拨,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望褥实。 院中可真熱鬧呀狼,春花似錦、人聲如沸损离。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽僻澎。三九已至貌踏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間怎棱,已是汗流浹背哩俭。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拳恋,地道東北人凡资。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像谬运,于是被迫代替她去往敵國和親隙赁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容