環(huán)境變量
查看環(huán)境變量命令
| 命令 | 功能 |
|---|---|
| env和printenv | 不會對變量進行排序,也不會輸出局部變量和用戶定義變量 |
| set | 會顯示出全局變量、局部變量以及用戶定義變量。它還會按照字母順序對結果進行排序 |
設置全局環(huán)境變量
在設置全局環(huán)境變量的進程所創(chuàng)建的子進程中,該變量都是可見的。創(chuàng)建全局環(huán)境變量的方法是先創(chuàng)建一個局部環(huán)境變量,然后再把它導出到全局環(huán)境中。
這個過程通過export命令來完成,變量名前不需要加$。
修改子shell中全局環(huán)境變量并不會影響到父shell中該變量的值。
子shell甚至無法使用export命令改變父shell中的全局環(huán)境變量的值。
$ my_variable="I am man"
$ export my_variable
$
$ echo $my_variable
I am man
$
$ bash
$
$ echo $my_variable
I am man
$
$my_variable="Null"
$
$export my_variable
$
$echo $my_variable
Null
$
$exit
exit
$
$ echo $my_variable
I am man
$
刪除環(huán)境變量
用unset命令刪除,不用使用$,如果在子進程里刪除變量并不會對父進程有影響。
$ echo $my_variable
I am man
$
$ unset my_variable
$
$ echo $my_variable
$
竅門: 如果要用到變量,使用$;如果要操作變量,不使用$。這條規(guī)則的一個例外就是使用printenv顯示某個變量的值。
定位系統(tǒng)環(huán)境變量
登錄shell
登錄shell會從5個不同的啟動文件里讀取命令:
- /etc/profile
- $HOME/.bash_profile
- $HOME/.bashrc
- $HOME/.bash_login
- $HOME/.profile
- /etc/profile
/etc/profile文件是bash shell默認的主啟動文件。 - $HOME目錄下的啟動文件
shell會按照下列順序,運行第一個被找到的文件,余下的則被忽略。
- $HOME/.bash_profile
** $HOME/.bash_login - $HOME/.profile
沒有$HOME/.bashrc文件,是因為該文件通常通過其他文件運行的。