環(huán)境變量:
官方定義:環(huán)境變量(environment variables)一般是指在操作系統(tǒng)中用來指定操作系統(tǒng)運行環(huán)境的一些參數(shù)捻悯,即指明操作系統(tǒng)的重要目錄在哪里。如:臨時文件夾位置和系統(tǒng)文件夾位置等挠蛉。
當在windows終端中輸入一個命令時,首先系統(tǒng)會去環(huán)境變量中去找這個程序,如果找到了讼育,就運行程序手形,否則就會提示找不到文件啥供。其實windows的cmd就是一個打開終端的命令而已:
對于現(xiàn)在的mac來說,因為默認使用zsh作為shell库糠,現(xiàn)在mac系統(tǒng)只會顯示默認的zsh加載的文件伙狐。
zsh下的用戶環(huán)境配置文件很多.zlogin
.zprofile
.zshrc
.zshenv
.zlogout
。
.zshenv
:總是被讀取,所以通常把$PATH
, $EDITOR
等變量寫在這里,這樣無論是在shell交互,或者運行程序都會讀取此文件
.zshrc
:主要用在交互shell,所以主要是為shell服務的,比如對shell做的一些個性化設置都可以在這里寫入
.zlogin
:在login shell的時候讀取,所以比如X系統(tǒng)啟動的時候會讀取此文件,所以不會再運行中重復讀取
.zprofile
是給zsh
用戶的一個.zlogin
的替代品,所以我們?nèi)绻褂昧?code>.zlogin就不必再關(guān)心此文件
zlogout
:這個就很好理解了, 退出終端的時候讀取,用于做一些清理工作,一般我們也用不上
優(yōu)先級:
.zshenv → [.zprofile if login] → [.zshrc if interactive] → [.zlogin if login] → [.zlogout sometimes].
如果之前是使用 bash 配置文件瞬欧,例如設置環(huán)境變量贷屎、別名或路徑變量,mac應該切換到使用 zsh 等價物黍判。例如:
.zprofile 等價于 .bash_profile 并在登錄時運行豫尽,包括通過 SSH
.zshrc 等效于 .bashrc 并為每個新的終端會話運行
配置文件的區(qū)別:
./etc/profile 文件 全局共有配置,無論哪個用戶登錄顷帖,都會讀取此文件
/etc/bashrc (一般在這個文件中添加系統(tǒng)級環(huán)境變量)全局(公有)配置美旧,bash shell執(zhí)行時,不管是何種方式贬墩,都會讀取此文件榴嗅。
~/.bash_profile:一般在這個文件中添加用戶級環(huán)境變量
/etc文件如下:
為什么使用zsh會讓.bash_profile里面的環(huán)境變量有效:
~/.zshrc文件如下:
查看它的第一行命令是執(zhí)行.bash_profile的命令,這是我自己添加的陶舞。所以以后直接在.bash_profile配置環(huán)境變量即可嗽测。
# 在當前bash環(huán)境下讀取并執(zhí)行FileName中的命令。使Shell讀入指定的Shell程序文件并依次執(zhí)行文件中的所有語句
source FileName
# 該命令通常用命令“.”來替代
# source /etc/profile 與 . /etc/profile 是等效的肿孵。
# 查看系統(tǒng)的環(huán)境默認變量
vim /etc/paths
# 查看配置的所有環(huán)境變量,$PATH 特指:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
echo $PATH
~/.bash_profile文件如下: 這里的冒號“:”是環(huán)境變量的分隔符
~/.zprofile文件如下:
對于配置了環(huán)境變量的路徑而言唠粥,bin目錄下的命令在終端任意地方都可以直接使用!例如MongoDB:
我們可以在終端任意位置輸入:mongo 就可以進入MongoDB數(shù)據(jù)庫的交互了
參考資料比較多停做,僅供學習記錄