終極Shell修行大法-不得不擁有

Homebrew

Shell神器,OS X 不可或缺的套件管理器顷霹。Homebrew較之于Shell,好比CocoaPod較之于Xcode歧譬。這么說(shuō),Homebrew的定位就應(yīng)該相當(dāng)明確了吧!

  • 安裝:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 卸載:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
  • 更新已安裝的package
    • 先更新brew:$ brew update
    • 更新所有package:$ brew upgarde
  • Homebrew下載的package存放的路徑在哪里陷猫?
    • /Library/Caches/Homebrew/

Homebrew 可以很方便的安裝需要的套件,方法如下:$ brew install wget秫舌。是不是很簡(jiǎn)單的妖?

Homebrew 使 OS X 更完美绣檬。使用 gem 來(lái)安裝 gems、用 brew 來(lái)搞定那些依賴(lài)包嫂粟。

Tips:

  • 如果安裝過(guò)程中提示錯(cuò)誤,提示先卸載,但執(zhí)行卸載命令又卸載不掉,說(shuō)明有曾經(jīng)安裝失敗過(guò),有殘留娇未。解決方式刪除/usr/local文件夾即可。
Homebrew安裝失敗.png

wget

wget是一個(gè)從網(wǎng)絡(luò)上自動(dòng)下載文件的自由工具星虹,支持通過(guò)HTTP零抬、HTTPS、FTP三個(gè)最常見(jiàn)的TCP/IP協(xié)議下載宽涌,并可以使用HTTP代理平夜。wget名稱(chēng)的由來(lái)是“World Wide Web”與“get”的結(jié)合。

  • Homebrew下安裝: 在安裝了Homebrew的情況下安裝wget特別簡(jiǎn)單卸亮。只需要:$ brew install wget 即可忽妒。如果沒(méi)安裝Homebrew建議趕緊安裝。
  • 正常安裝(特別復(fù)雜,不建議直接安裝):
    1. http://ftp.gnu.org/gnu/wget/wget-1.13.4.tar.gz
      下載源碼包。這里面找到最新版本段直,直接下載安裝就行了
    2. 到目錄cd /usr/local/src 解壓: tar -zxvf wget-1.13.tar.gz
    3. ./configure吃溅,這個(gè)過(guò)程第一次是不成功的,然后提示你下載安裝一個(gè)make,安裝make后鸯檬,再運(yùn)行一下./configure决侈。
    4. make
    5. sudo make install

zsh

終極shell,Mac自帶就有,使用oh-my-zsh進(jìn)行配置,簡(jiǎn)單又強(qiáng)大.配合iTerm 2一同使用,簡(jiǎn)單又強(qiáng)大。

Oh My Zsh.png
  • 安裝

    1. 下載一個(gè) .oh-my-zsh 配置(推薦有)

      git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
      
    2. 創(chuàng)建新配置(備份)
    
     ```ruby  
     cp ~/.zshrc ~/.zshrc.orig
     cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
    
    1. 把 zsh 設(shè)置成默認(rèn)的 shell

       chsh -s /bin/zsh
      
    2. 重啟 zsh (打開(kāi)一個(gè)新的 terminal 窗口)

  • 配置

    • 主題:agnoster
    • 字體:Powerline (把 iTerm 2 的設(shè)置里的 Profile 中的 Text 選項(xiàng)卡中里的 Regular Font 和 Non-ASCII Font 的字體都設(shè)置成 Powerline 的字體喧务。)
      • 推薦使用 14pt Meslo LG S DZ Regular for Powerline
  • 設(shè)置命令正確綠色高亮,錯(cuò)誤紅色高亮

    git clone git://github.com/jimmijj/zsh-syntax-highlighting ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
    
    • 然后在~/.zshrc中插件那添加
      • plugins=(zsh-syntax-highlighting)
  • 加強(qiáng)zsh的補(bǔ)全功能實(shí)現(xiàn)tab自動(dòng)糾錯(cuò)

    • 把這兩句話添加到oh-my-zsh/lib/completion.zsh (末尾)
    zstyle ':completion:incremental:*' completer _complete _correct
    zstyle ':completion:*' completer _complete _prefix _correct _prefix _match _approximate
    

zsh 好處

  1. zsh 可以補(bǔ)全參數(shù)
    當(dāng)你敲指令敲到一般的時(shí)候赖歌,不必在虛擬終端下Ctrl_Shift_T 打開(kāi)一個(gè)新標(biāo)簽看手冊(cè)了,只需要一個(gè)<Tab>蹂楣,zsh 會(huì)為你列出所有符合你已經(jīng)輸入部分的參數(shù)俏站,其后跟著參數(shù)說(shuō)明,你需要的只是看下其后的說(shuō)明痊土,然后選中你需要的參數(shù)按下回車(chē)鍵肄扎。視頻中我們差一點(diǎn)就用純tab 完成了一條dd 指令。

  2. zsh 的參數(shù)補(bǔ)全是智能補(bǔ)全
    簡(jiǎn)單的例子:
    當(dāng)你輸入ls 指令按下<Tab> 的時(shí)候赁酝,zsh 會(huì)列出目錄下所有的文件并讓你交互式處理犯祠。
    當(dāng)你輸入unzip 指令要求補(bǔ)全的時(shí)候,zsh 只會(huì)列出zip 文件
    當(dāng)你輸入kill 指令要求補(bǔ)全的時(shí)候酌呆,zsh 會(huì)列出所有符合要求的進(jìn)程并自動(dòng)把參數(shù)轉(zhuǎn)換為PID衡载。
    當(dāng)你輸入?yún)?shù)的一部分時(shí)(例如systemctl 的--type=,-t),zsh 會(huì)列出其后所有的可能性供你選擇隙袁。

  3. zsh 可以補(bǔ)全路徑
    當(dāng)你想到你的vim 插件目錄下看看的時(shí)候痰娱,你甚至連cd 都不需要輸入,你要做的只是/u/s/v/vimf/p<Tab><Enter>

  4. zsh 可以不額外安裝autojump 在目錄中快速跳轉(zhuǎn)
    安裝oh-my-zsh 后菩收,在你的plugins=() 中加入jump(事實(shí)上這個(gè)插件提供的是幾個(gè)函數(shù))梨睁。之后mark dir 標(biāo)記一個(gè)目錄,下次jump dir 就可以快速跳轉(zhuǎn)到該目錄娜饵。

  5. zsh 可以自動(dòng)糾錯(cuò)指令
    當(dāng)你輸入了錯(cuò)誤的指令時(shí)坡贺,如果只是幾個(gè)字母按錯(cuò)了,一個(gè)<Tab> zsh 就會(huì)為你自動(dòng)糾錯(cuò)箱舞。
    你可以利用這個(gè)特性縮寫(xiě)指令遍坟,例如把systemd-analyze 變成sys-an<Tab>。

  6. zsh 可以預(yù)先告知你指令中的錯(cuò)誤
    zsh 會(huì)將錯(cuò)誤的指令顯示為紅色晴股,正確的指令(或者函數(shù)愿伴、alisa)會(huì)被顯示為綠色。
    至于目錄和文件电湘,虛擬終端下隔节,存在的文件或目錄會(huì)被顯示為下劃線形式万搔,tty 下則是綠色,不存在的都會(huì)被現(xiàn)實(shí)為普通的白色官帘。
    所以當(dāng)你重定向> file瞬雹,如果file 帶下劃線,你會(huì)事先明白你的操作會(huì)清空一個(gè)已經(jīng)存在的文件而不是重定向到新文件刽虹。這個(gè)特性對(duì)于新手來(lái)說(shuō)是非常有用的酗捌。

  7. zsh 可以補(bǔ)全環(huán)境變量
    環(huán)境變量大多數(shù)都比較難記,而且大小寫(xiě)都有涌哲,感到很困難胖缤?zsh 中一個(gè)tab 為你列出所有符合期望的環(huán)境變量,你做的只是按上下左右鍵挑選一個(gè)即可阀圾。

  8. zsh 有多重定向的功能
    簡(jiǎn)單的例子:
    當(dāng)你指令后跟著">/dev/null >1 >2" 的時(shí)候哪廓,zsh 明白你的意思是將stdout 分別重定向到三個(gè)流,但是bash 就無(wú)法如此初烘。
    而當(dāng)你后跟">/dev/null 2>&1 &" 的時(shí)候涡真,zsh 明白你的意思是將stdout 和stderr 都重定向到一個(gè)流。
    zsh 會(huì)推斷你的意圖肾筐,如果你是perl 用戶(hù)哆料,你會(huì)很熟悉這種行為。

  9. zsh 可以提示通配符的作用范圍
    不知道有多少人有過(guò)"rm -rf dir/<空格>* " 的悲劇——你想清空目錄其下的文件并保留目錄吗铐,結(jié)果刪除了當(dāng)前目錄下所有的文件东亦。
    zsh 會(huì)將被通配符作用的參數(shù)顯示為深藍(lán)色,當(dāng)你手賤在"dir/" 和"" 之間敲了一個(gè)回車(chē)的時(shí)候唬渗,"/dir" 會(huì)立刻變白典阵,你會(huì)明白我的通配符無(wú)法作用于"dir/",從而預(yù)料到這條指令可能造成什么后果镊逝。
    事實(shí)上:zsh 也有著防手賤的能力壮啊,當(dāng)你rm -rf dir/
    的時(shí)候,即使帶著-f 參數(shù)蹋半,zsh 仍然會(huì)詢(xún)問(wèn)你是否真的想這樣做(但是不要認(rèn)為zsh 總會(huì)這樣)他巨。

  10. zsh 可以有區(qū)分的提示指令歷史
    在你的.zshrc 的plugins=() 中添加history 插件充坑,簡(jiǎn)單的例子:
    在目錄A 下輸入ls 按上箭頭减江,zsh 會(huì)提示你所有在目錄A 下執(zhí)行的ls 指令——zsh 絕對(duì)不會(huì)補(bǔ)全一個(gè)在其他目錄下指令的ls 指令的,因?yàn)閦sh 明白即使補(bǔ)全了捻爷,這條指令也對(duì)你毫無(wú)用處辈灼。
    當(dāng)然這樣做有好有壞,如果你不喜歡這個(gè)特性也榄,不要啟用history 插件巡莹。

  11. zsh 內(nèi)置了大量的命令提示符樣式
    .zshrc 的plugins=() 中添加theme 插件司志,敲theme 指令回車(chē)可以隨機(jī)選擇,后跟參數(shù)可以選擇指定的樣式降宅,例如theme gen<Tab><Enter> 會(huì)切換到gentoo 樣式骂远,這也是新手美化過(guò)程中非常痛苦的一環(huán)。

  12. zsh 可以alisa 參數(shù)
    相對(duì)于其他shell 的alisa 指令腰根,zsh 中你可以為參數(shù)alisa 一個(gè)縮寫(xiě)激才!

  13. zsh 腳本的語(yǔ)法更加順手
    簡(jiǎn)單的例子:bash 中設(shè)置PATH,你需要PATH 后跟長(zhǎng)長(zhǎng)的一串额嘿,然而zsh 中可以寫(xiě)成
    PATH=(
    dir1
    dir2
    dir3
    ……
    )

  14. zsh 的配置非常省心
    安裝oh-my-zsh 后瘸恼,配置都已經(jīng)被繼承,你可以很簡(jiǎn)單的配置好一個(gè)舒服的zsh——我的.zshrc 除去成片的alisa 之外册养,有效配置只有十幾行东帅。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市球拦,隨后出現(xiàn)的幾起案子靠闭,更是在濱河造成了極大的恐慌,老刑警劉巖坎炼,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阎毅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡点弯,警方通過(guò)查閱死者的電腦和手機(jī)扇调,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)抢肛,“玉大人狼钮,你說(shuō)我怎么就攤上這事〖裥酰” “怎么了熬芜?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)福稳。 經(jīng)常有香客問(wèn)我涎拉,道長(zhǎng),這世上最難降的妖魔是什么的圆? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任鼓拧,我火速辦了婚禮,結(jié)果婚禮上越妈,老公的妹妹穿的比我還像新娘季俩。我一直安慰自己,他們只是感情好梅掠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布酌住。 她就那樣靜靜地躺著店归,像睡著了一般。 火紅的嫁衣襯著肌膚如雪酪我。 梳的紋絲不亂的頭發(fā)上消痛,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音都哭,去河邊找鬼肄满。 笑死,一個(gè)胖子當(dāng)著我的面吹牛质涛,可吹牛的內(nèi)容都是我干的稠歉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼汇陆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼怒炸!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起毡代,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤阅羹,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后教寂,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體捏鱼,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年酪耕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了导梆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡迂烁,死狀恐怖看尼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盟步,我是刑警寧澤藏斩,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站却盘,受9級(jí)特大地震影響狰域,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜黄橘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一兆览、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧旬陡,春花似錦拓颓、人聲如沸语婴。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至匿醒,卻和暖如春场航,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背廉羔。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工溉痢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人憋他。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓孩饼,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親竹挡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子镀娶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

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

  • Linux命令學(xué)習(xí) 記錄小白學(xué)習(xí)Linux的過(guò)程。 常用命令 man命令 常用工具命令 man命令是Linux下的...
    吃蘑菇De大灰狼閱讀 2,749評(píng)論 1 15
  • 終極 ShellPosted on 2013 年 7 月 23 日 http://macshuo.com/?p=6...
    Albert陳凱閱讀 977評(píng)論 0 0
  • 軟件安裝 Xcode Git iTerm2 zsh Sublime3 TextMate MacDown Intel...
    holaOla閱讀 2,762評(píng)論 0 13
  • 工欲善其事揪罕,必先利其器梯码。工欲利其器,必先思其行好啰。每次換電腦的時(shí)候都得重新倒騰一遍轩娶,由于時(shí)間過(guò)得比較久老是忘記,所以...
    程序媛coco閱讀 884評(píng)論 0 0
  • 1904年美國(guó)《企業(yè)家》雜志發(fā)刊框往,選擇了托馬斯 潘恩的《常識(shí)》中的一部分做發(fā)刊詞鳄抒,文字這樣寫(xiě)道: 我是不會(huì)選擇做一...
    李大女兒閱讀 125評(píng)論 0 0