天天看點

關于macOS 類系統的各種shell解釋

配置檔案有兩個級别, 系統級(/etc)和使用者級(~/), 每次調用優先調用系統級

profile用于登入式shell, 而bashrc用于每個互動式shell

bashrc是在系統啟動後就會自動運作。

profile是在使用者登入後才會運作。

進行設定後,可運用source bashrc指令更新bashrc,也可運用source profile指令更新profile。

PS:通常我們修改bashrc,有些linux的發行版本不一定有profile這個檔案

/etc/profile中設定的變量(全局)的可以作用于任何使用者,而~/.bashrc等中設定的變量(局部)隻能繼承/etc/profile中的變量,他們是"父子"關系。

這個檔案主要儲存個人的一些個性化設定,如指令别名、路徑等。定義了路徑,語言,指令别名(使用rm删除指令時總是加上-i參數需要使用者确認,使用ls指令列出檔案清單時加上顔色顯示)。

每次修改.bashrc後,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加載修改後的設定,使之生效。

一般會在.bash_profile檔案中顯式調用.bashrc。

登陸linux啟動bash時首先會去讀取/.bash_profile檔案,這樣/.bashrc也就得到執行了,你的個性化設定也就生效了

使用者可以在Profile檔案中加入環境變量,比如ORACLE_HOME,HOME...這樣重新登入之後,這些環境變量都會得以設定,不用每次都手工設定。

Unix/Linux有兩個profile檔案

1./etc/profile:是全局profile檔案,設定後會影響到所有使用者

2./home/username/.profile或.bash_profile是針對特定使用者的,可以針對使用者,來配置自己的環境變量。

注意:profile是unix上才有的;bash_profile是Linux下有的(Linux下,使用者目錄沒有.profile檔案)

/home/username/.profile或.bash_profile,都是隐藏檔案,需要使用ls -a才能看到。

先執行全局Profile, /etc/profile

接着bash會檢查使用者的HOME目錄中,是否有 .bash_profile 或者 .bash_login或者 .profile,若有,則會執行其中一個,執行順序為:

.bash_profile 最優先 > .bash_login其次 > .profile 最後

所有unix系統分支下在unix 核心的作業系統中,當然現在衍生出好多分支,linux ,OS X 都算.

shell 就算和上面這些系統核心指令打交道的一座橋梁,我們通過鍵盤輸入一種自己容易記憶識别的符号辨別(shell 指令)

然後 shell 解析這種指令再回報給核心去執行一系列操作.

其實 zsh 也是一種 shell ,但是并不是我們系統預設的 shell ,unix 衍生系統的預設shell 都是 bash

以mac 為例,我們看下系統内置了幾種shell

關于macOS 類系統的各種shell解釋

zsh的配置檔案是.zshrc,是以對于zsh的一切設定,直接去/.zshrc中設定.

注意: 本機是可以識别的,但是如果是使用gitlab-runner的話,預設的配置檔案不使用.zshrc,使用的是.bash_profile

oh-my-zsh 是zsh的一個配置開源配置檔案,因為手動配置zsh太麻煩.

接下來我們需要下載下傳 oh-my-zsh 項目來幫我們配置 zsh

wget 自動安裝

<code>wget [https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh](https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh) -O - | sh</code>

安裝 oh-my-zsh 時,它自動讀取你的環境變量并且自動幫 zsh 進行設定.

是以這時的zsh 基本已經配置完成,你需要一行指令就可以切換到 zsh 模式.

繼續閱讀