shell

1钧唐、什么是shell

Shell本質(zhì)就是一個(gè)工具箱忙灼,而它的作用呢,顧名思義就是包裹在操作系統(tǒng)內(nèi)核外面的那層”殼“钝侠,這樣就好理解為什么那些涉及底層的操作要用它了该园。Ken Thompson開發(fā)的sh是第一種Unix Shell,而各路大神都愛自己造工具帅韧,于是乎各種shell就出現(xiàn)了里初。作為業(yè)余程序猿學(xué)會(huì)怎么用,我就知足了忽舟。

2.為什么是Zsh双妨?

Mac里自帶的Shell很多淮阐,通過命令:cat /etc/shells
系統(tǒng)會(huì)顯示:

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

這么多種Shell里面,我用過的就Bash和Zsh斥难,前者是Mac和Linux的缺省配置,而后者功能更強(qiáng)大而且基本兼容前者帘饶。重要的是后者有一個(gè)非常出色的開源的插件包oh-my-zsh哑诊,讓Zsh原本繁瑣的配置過程變得美好起來了。

3.安裝與配置

3.1 Zsh的安裝與配置

3.1.1 安裝Zsh

如果全新安裝及刻,建議使用:brew install zsh镀裤。

3.1.2 配置Zsh

Zsh替換Bash的方法:chsh -s /bin/zsh,重啟終端后即為Zsh了缴饭。
注意:你之前如果使用過Bash暑劝,肯定修改了它的配置文件/.bash_prorile。同樣颗搂,現(xiàn)在使用Zsh担猛,自己也有配置文件/.zshrc,就需要將原來的配置拷貝過來丢氢。

4 功能介紹

4.1 Zsh的缺省功能

Zsh的缺省功能就很強(qiáng)大傅联,當(dāng)然配置后會(huì)更加強(qiáng)大。

4.1.1 自動(dòng)補(bǔ)全

Zsh的補(bǔ)全功能非常貼心疚察,按TAB可以補(bǔ)全命令蒸走、路徑還有參數(shù)。

4.1.2 殺進(jìn)程

Bash殺進(jìn)程需要先用ps aux | grep xxx查找進(jìn)程的PID貌嫡,然后才能用kill PID比驻。
Zsh可以直接就kill XXX后面按TAB ,這樣簡單很多

5岛抄、環(huán)境變量配置文件

macOS 默認(rèn)的是 Bourne Shell别惦,其環(huán)境變量配置文件及加載順序如下:

/etc/profile
/etc/bashrc
/etc/paths 
~/.bash_profile # macOS
~/.bash_login 
~/.profile 
~/.bashrc # linux

其中 /etc/profile /etc/bashrc 和 /etc/paths 是系統(tǒng)級(jí)環(huán)境變量,對(duì)所有用戶都有效夫椭。但它們的加載時(shí)機(jī)有所區(qū)別:

/etc/profile 任何用戶登陸時(shí)都會(huì)讀取該文件
/etc/bashrc bash shell執(zhí)行時(shí)步咪,不管是何種方式,讀取此文件
/etc/paths 任何用戶登陸時(shí)都會(huì)讀取該文件

后面幾個(gè)是當(dāng)前用戶級(jí)的環(huán)境變量益楼。macOS 默認(rèn)用戶環(huán)境變量配置文件為 ~/.bash_profile猾漫,Linux 為 ~/.bashrc。

如果不存在 ~/.bash_profile感凤,則可以自己創(chuàng)建一個(gè) ~/.bash_profile悯周。

如果 ~/.bash_profile 文件存在,則后面的幾個(gè)文件就會(huì)被忽略
如果 ~/.bash_profile 文件不存在陪竿,才會(huì)以此類推讀取后面的文件

如果使用的是 SHELL 類型是 zsh禽翼,則還可能存在對(duì)應(yīng)的 /etc/zshrc 和 ~/.zshrc屠橄。任何用戶登錄 zsh 的時(shí)候,都會(huì)讀取該文件闰挡。某個(gè)用戶登錄的時(shí)候锐墙,會(huì)讀取其對(duì)應(yīng)的 ~/.zshrc。

6长酗、添加環(huán)境變量

  • 系統(tǒng)環(huán)境變量 /etc/paths(不建議修改)
  • 系統(tǒng)環(huán)境變量 /etc/profile 和 /etc/bashrc(不建議修改)
  • 用戶環(huán)境變量
    用戶環(huán)境變量
    添加用戶環(huán)境變量溪北,只需要修改 ~/.bash_profile(Bourne Shell)或 ~/.zshrc(zsh)或其他用戶級(jí)配置文件即可。添加環(huán)境變量的語法也是:
export PATH="$PATH:<PATH 1>:<PATH 2>:<PATH 3>:...:<PATH N>"

下面是我的 ~/.zshrc 的部分配置:

export ANDROID_HOME=~/Library/Android/sdk
export PATH=$PATH:~/Library/Android/sdk/tools:~/Library/Android/sdk/platform-tools
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/support-files
alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"
alias t="trans"
export PATH="/usr/local/sbin:$PATH"

可以通過 echo $PATH 命令查看當(dāng)前環(huán)境變量:

echo $PATH

/usr/local/sbin:/Users/jh/.nvm/versions/node/v7.6.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/Users/jh/Library/Android/sdk/tools:/Users/jh/Library/Android/sdk/platform-tools:/usr/local/mysql/bin:/usr/local/mysql/support-files:/Applications/Sublime Text.app/Contents/SharedSupport/bin

修改了配置文件之后夺脾,依舊需要重新登錄 SHELL 或者使用 source ~/.zshrc 來是配置立即生效之拨。

參考:Mac折騰手記之Zsh
macOS/Linux 環(huán)境變量設(shè)置

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市咧叭,隨后出現(xiàn)的幾起案子蚀乔,更是在濱河造成了極大的恐慌,老刑警劉巖菲茬,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吉挣,死亡現(xiàn)場離奇詭異,居然都是意外死亡婉弹,警方通過查閱死者的電腦和手機(jī)听想,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來马胧,“玉大人汉买,你說我怎么就攤上這事∨寮梗” “怎么了蛙粘?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長威彰。 經(jīng)常有香客問我出牧,道長,這世上最難降的妖魔是什么歇盼? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任舔痕,我火速辦了婚禮,結(jié)果婚禮上豹缀,老公的妹妹穿的比我還像新娘伯复。我一直安慰自己,他們只是感情好邢笙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布啸如。 她就那樣靜靜地躺著,像睡著了一般氮惯。 火紅的嫁衣襯著肌膚如雪叮雳。 梳的紋絲不亂的頭發(fā)上想暗,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音帘不,去河邊找鬼说莫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛寞焙,可吹牛的內(nèi)容都是我干的储狭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼棺弊,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼晶密!你這毒婦竟也來了擒悬?” 一聲冷哼從身側(cè)響起模她,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎懂牧,沒想到半個(gè)月后侈净,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡僧凤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年畜侦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躯保。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡旋膳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出途事,到底是詐尸還是另有隱情验懊,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布尸变,位于F島的核電站义图,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏召烂。R本人自食惡果不足惜碱工,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奏夫。 院中可真熱鬧怕篷,春花似錦、人聲如沸酗昼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仔雷。三九已至蹂析,卻和暖如春舔示,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背电抚。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工惕稻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蝙叛。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓俺祠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親借帘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蜘渣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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