linux環境變數及shell啟動的方式

2021-09-27 08:24:38 字數 1389 閱讀 5816

在bash shell種,環境變數用於儲存有關shell會話和工作環境的資訊。環境變數分為兩類:

全域性變數對於shell會話和所有生成的子shell都是可見的。區域性變數只對建立他們的shell可見。

檢視全域性變數,可以使用env或printenv命令。

使用set命令,可以檢視所有的環境變數,包括區域性變數、全域性變數以及使用者定義變數。使用者定義變數也分區域性環境變數和全域性環境變數。

按照bash shell的慣例,所有的環境變數名均使用大寫字母,因此使用者定義區域性變數時要堅持使用小寫字母。

var_name=var_value
區域性環境變數,只能在當前shell中使用,在子shell中不可用。如果在子程序中設定了區域性變數,一旦退出了子程序,該區域性變數就不可用。

如果在當前程序中設定了全域性環境變數,那麼在當前shell建立的子shell中,該變數都是可用的。建立全域性環境變數的方法是:

var_name=var_value

export var_name

修改子shell中全域性環境變數,並不會影響父shell中該變數的值。

在子shell中甚至無法使用export命令改變父shell中全域性環境變數的值,也無法用unset刪除全域性環境變數。

作為預設登入shell

作為非登入shell的互動式shell

作為執行指令碼的非互動式shell

啟動檔案執行的順序:

/etc/profile 定義一些環境變數(path/user/hostname/histsize等)

讀取/etc/profile.d/*.sh(顏色、語言、執行別名等)

~/.bash_profile、~/.bash_login、~/.profile(依次只讀取其中乙個)

~/.bash_profile會呼叫~/.bashrc(如果存在),~/.bashrc會呼叫/etc/bashrc(如果存在)

可以用source指令載入指令碼的變更

不需要登入即可執行的shell,如su和原bash下的新bash動作

~/.bashrc、/etc/bashrc

系統執行shell指令碼時用的是這種shell。為了在執行指令碼時執行一些特定啟動的命令,bash shell提供了bash_env環境變數,它會檢查這個環境變數來檢視要執行的啟動檔案。

有些shell指令碼是通過啟動乙個子shel來執行的,子shell可以繼承父shell匯出過的變數。

如果想持久化全域性環境變數,最好在/etc/profile.d目錄中建立乙個以.sh結尾的檔案,將新增或修改過的全域性環境變數放置在這個檔案中。

在大多數發行版中,用~/.bashrc檔案儲存個人使用者永久性bash shell變數。

shell變數及環境變數

b 本地變數 b 顯示變數 great picture die hard echo die hard dollar 99 echo 99 last file zlpso.txt echo zlpso.txt 清除變數 unset variable name pc enterprise echo en...

linux 環境變數和shell變數

變數是任何一種程式語言都必不可少的組成部分,用於存放各種型別的變數。指令碼語言大多是弱型別語言 動態語言 也就是說在使用變數時,不需要事先宣告變數的型別,只需要直接賦值就可以。在bash中,每乙個變數的值都是字串。無論你給變數賦值時有沒有使用引號,值都會以字串的形式儲存。有一些特殊的變數會被shel...

linux(環境變數 shell程式設計)

系統環境變數 命名全域性變數 export name 999 系統級變數 對所有的使用者都生效 etc profile 只有root使用者才能設定 在文件中設定完畢,需要 source etc profile單使用者級別環境變數 bashrc 設定path 環境變數 臨時設定 path path s...