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
- 先更新brew:$
- 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
文件夾即可。
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ù)雜,不建議直接安裝):
-
http://ftp.gnu.org/gnu/wget/wget-1.13.4.tar.gz
下載源碼包。這里面找到最新版本段直,直接下載安裝就行了 - 到目錄
cd /usr/local/src
解壓: tar -zxvf wget-1.13.tar.gz -
./configure
吃溅,這個(gè)過(guò)程第一次是不成功的,然后提示你下載安裝一個(gè)make,安裝make后鸯檬,再運(yùn)行一下./configure
决侈。 make
sudo make install
-
http://ftp.gnu.org/gnu/wget/wget-1.13.4.tar.gz
zsh
終極shell,Mac自帶就有,使用
oh-my-zsh
進(jìn)行配置,簡(jiǎn)單又強(qiáng)大.配合iTerm 2一同使用,簡(jiǎn)單又強(qiáng)大。
-
安裝
-
下載一個(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
-
把 zsh 設(shè)置成默認(rèn)的 shell
chsh -s /bin/zsh
重啟 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)
- 然后在~/.zshrc中插件那添加
-
加強(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 好處
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 指令。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ì)列出其后所有的可能性供你選擇隙袁。zsh 可以補(bǔ)全路徑
當(dāng)你想到你的vim 插件目錄下看看的時(shí)候痰娱,你甚至連cd 都不需要輸入,你要做的只是/u/s/v/vimf/p<Tab><Enter>zsh 可以不額外安裝autojump 在目錄中快速跳轉(zhuǎn)
安裝oh-my-zsh 后菩收,在你的plugins=() 中加入jump(事實(shí)上這個(gè)插件提供的是幾個(gè)函數(shù))梨睁。之后mark dir 標(biāo)記一個(gè)目錄,下次jump dir 就可以快速跳轉(zhuǎn)到該目錄娜饵。zsh 可以自動(dòng)糾錯(cuò)指令
當(dāng)你輸入了錯(cuò)誤的指令時(shí)坡贺,如果只是幾個(gè)字母按錯(cuò)了,一個(gè)<Tab> zsh 就會(huì)為你自動(dòng)糾錯(cuò)箱舞。
你可以利用這個(gè)特性縮寫(xiě)指令遍坟,例如把systemd-analyze 變成sys-an<Tab>。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ō)是非常有用的酗捌。zsh 可以補(bǔ)全環(huán)境變量
環(huán)境變量大多數(shù)都比較難記,而且大小寫(xiě)都有涌哲,感到很困難胖缤?zsh 中一個(gè)tab 為你列出所有符合期望的環(huán)境變量,你做的只是按上下左右鍵挑選一個(gè)即可阀圾。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ì)很熟悉這種行為。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ì)這樣)他巨。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 插件巡莹。zsh 內(nèi)置了大量的命令提示符樣式
.zshrc 的plugins=() 中添加theme 插件司志,敲theme 指令回車(chē)可以隨機(jī)選擇,后跟參數(shù)可以選擇指定的樣式降宅,例如theme gen<Tab><Enter> 會(huì)切換到gentoo 樣式骂远,這也是新手美化過(guò)程中非常痛苦的一環(huán)。zsh 可以alisa 參數(shù)
相對(duì)于其他shell 的alisa 指令腰根,zsh 中你可以為參數(shù)alisa 一個(gè)縮寫(xiě)激才!zsh 腳本的語(yǔ)法更加順手
簡(jiǎn)單的例子:bash 中設(shè)置PATH,你需要PATH 后跟長(zhǎng)長(zhǎng)的一串额嘿,然而zsh 中可以寫(xiě)成
PATH=(
dir1
dir2
dir3
……
)zsh 的配置非常省心
安裝oh-my-zsh 后瘸恼,配置都已經(jīng)被繼承,你可以很簡(jiǎn)單的配置好一個(gè)舒服的zsh——我的.zshrc 除去成片的alisa 之外册养,有效配置只有十幾行东帅。