環境變數是使用者登入系統後的執行環境,主要是執行各種命令時,系統根據環境變數的配置去查詢命令的位置。環境變數分成兩類,一類為系統級別,一類為使用者級別。
此檔案為系統的每個使用者設定環境資訊,當使用者第一次登入時,該檔案被執行.並從/etc/profile.d目錄的配置檔案中蒐集shell的設定.
注:在這裡我們設定是為所有使用者可使用的全域性變數。
為每乙個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.
每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.
注:~在linux下面是代表home這個變數的。
另 外在不同的linux作業系統下,這個檔案可能是不同的,可能是~/.bash_profile; ~/.bash_login或 ~/.profile其中的一種或幾種,如果存在幾種的話,那麼執行的順序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。比如我用的是ubuntu,我的使用者資料夾下預設的就只有~/.profile檔案。
該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該檔案被讀取.
(注:這個檔案是 .開頭的,所以在資料夾中被隱藏了)
那麼我們如何新增自己定義的環境變數呢?
用記事本開啟這個檔案,然後在裡面最後寫上:
xiaokang=kangkang
然 後儲存,這樣每次開啟乙個新的terminal的時候,我們這個變數就生效了。記住,如果你已經開啟乙個terminal,然後你修改了這個檔案,那麼在 這個terminal下是不會生效的。一般情況使用者最好在這裡進行修改,但是有時候會覆蓋父級的變數,比如path是root設定的,但是如果你在這個文 件裡面寫了path=xx,那麼將來所有的path都成了xx了,所以我們應該在這個檔案中寫為:
path=$path:xx
這樣就把原來的和你自己的一起加上了。而且注意在linux系統下用:分割表示並列,而不是windo的;
3和4都是在使用者目錄下的,他們唯一的不同是:.bash_profile只能在登入的時候啟動一次。在我的ubuntu裡面這個3檔案似乎沒有。
當每次退出系統(退出bash shell)時,執行該檔案.
另外,/etc/profile中設定的變數(全域性)的可以作用於任何使用者,而~/.bashrc等中設定的變數(區域性)只能繼承/etc/profile中的變數,他們是/"父子/"關係.
~/.bash_profile 是互動式、login 方式進入 bash 執行的
~/.bashrc 是互動式 non-login 方式進入bash 執行的
通常二者設定大致相同,所以通常前者會呼叫後者。
通過上面的檔案介紹,就能明白我們需要設定環境變數的時候,需要修改什麼檔案,要想對所有的使用者生效,那就需要設定系統級的環境變數。反之,需要修改使用者級的檔案(最好是修改.profile檔案,理由上面已經講了)。
另外,總結一下他們的執行方式:
當你登入並且登入shell是bash時,bash首先執行/etc/profile檔案中的命令(如果該 檔案存在),然後它順序尋找~/.bash_profile,~/.bash_login或~/.profile檔案,並執行找到的第乙個可讀檔案中的命令.當登入bash退出時,它 將執行~/.bash_logout檔案中的命令.
當啟動乙個互動的bash時,它將執行~/.bashrc檔案中的命令(如果該檔案存在並且可讀).當非互動地啟動以執行乙個shell指令碼時,bash將查詢bash_env環境變數,確定執行檔案的名稱.
linux環境程式設計 環境變數 列印環境變數
在shell程式設計主題中,我們已經大致的介紹過 環境變數和本地變數啦 我們今天來具體的介紹介紹,那環境變數到底是什麼呢?是我 一.環境變數含義 特徵 環境變數是指 作業系統中用來指定作業系統執行環境的一下引數 1 特徵 字串 有統一的格式 名 值 值 值用來描述程序的環境資訊 2 使用形式 與命令...
linux環境變數
初次學習lliux對環境變數的知識甚是不解決,特花費乙個上午的時間總結了一下,可以說是全面!如各位有更加詳細的見解不妨告知!定製環境變數 環境變數是和shell緊密相關的,使用者登入系統後就啟動了乙個shell。對於linux來說一般是bash,但也可以重新設定或切換到其它的 shell。環境變數是...
Linux環境變數
好吧,我承認這篇文章是轉的.1.顯示環境變數home echo home home redbooks 2.設定乙個新的環境變數hello export hello hello echo hello hello 3.使用env命令顯示所有的環境變數 env hostname redbooks.safe...