標籤:http java 使用 os io 檔案 for ar art
shell環境變數的分類以及set env export的區別:
set:顯示(設定)shell變數 包括的私人變數以及使用者變數,不同類的shell有不同的私人變數 bash,ksh,csh每中shell私人變數都不一樣
env:顯示(設定)使用者變數變數
export:顯示(設定)當前置出成使用者變數的shell變數。
舉個例子來講:
[www.linuxidc.com@linuxidc ~]$ aaa=bbb –shell變數設定
[www.linuxidc.com@linuxidc ~]$ echo $aaa
bbb
[www.linuxidc.com@linuxidc ~]$ env| grep aaa –設定完目前使用者變數並沒有
[www.linuxidc.com@linuxidc ~]$ set| grep aaa –shell變數有
aaa=bbb
[www.linuxidc.com@linuxidc ~]$ export| grep aaa –這個指的export也沒匯出,匯出變數也沒有
[www.linuxidc.com@linuxidc ~]$ export aaa –那麼用export 匯出一下
[www.linuxidc.com@linuxidc ~]$ env| grep aaa –發現使用者變數記憶體在了
aaa=bbb
總結:linux 分 shell變數(set),使用者變數(env), shell變數包含使用者變數,export是一種命令工具,是顯示那些通過export命令把shell變數中包含的使用者變數匯入給使用者變數的那些變數.
環境變數的設定檔
最根本的設定、更改變數的設定檔 ~/.bash_profile ~/.bashrc ~/.bash_logout
~/.bash_profile 使用者登入時被讀取,其中包含的命令被執行
~/.bashrc 啟動新的shell時被讀取,並執行
~/.bash_logout shell 登入退出時被讀取
.bashrc和.bash_profile的區別
引自
.bash_profile會用在login shell
.bashrc 使用在interactive non-login shell
Bash下每個使用者都可以配置兩個初始檔案:.bash_profile和.bashrc,檔案儲存體在~根目錄中。man bash中的相關解釋如下:
,—————————————————————————-
| ~/.bash_profile
| The personal initialization file, executed for login shells
| ~/.bashrc
| The individual per-interactive-shell startup file
`—————————————————————————-
每次bash作為login shell啟動時會執行.bash_profile。
每次bash作為普通的互動shell(interactive shell)啟動時會執行.bashrc
注意
1)在shell指令碼中“#!/usr/bin/bash”啟動的bash並不執行.bashrc。因為這裡的bash不是interactive shell。
2)bash作為login shell(login bash)啟動時並不執行.bashrc。雖然該shell也是interactive shell,但它不是普通的shell。
- 一般.bash_profile裡都會調用.bashrc
儘管login bash啟動時不會自動執行.bashrc,慣例上會在.bash_profile中顯式調用.bashrc。所以在你的.bash_profile檔案中,很可能會看到如下的程式碼片段:
[plain] view plaincopy在CODE上查看代碼片派生到My Code片
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
.bashrc 使用在interactive non-login shell。意思是你每次運行一個bash指令碼的話,.bashrc就會被執行一次。有個簡單的方法,你在.bash_profile和.bashrc裡 都用echo列印點東西。,就可以看到著兩個檔案都是什麼時候被執行的了。
編輯/etc/profile修改全域環境變數
編輯.bash_profile修改目前使用者的環境變數
修改完成之後source一下即可生效,例如source ~/.bash_profile
Shell環境變數以及set,env,export的區別