搜尋
首頁php教程PHP开发Linux 環境變數設定的幾種方法

環境變數是跟Shell緊密相關的,使用者登入系統後就啟動了一個Shell。對於Linux來說一般是bash,但也可以重新設定或切換到其它的 Shell。對於UNIX,可能是CShelll。環境變數是透過Shell指令來設定的,而設定好的環境變數又可以被所有目前使用者所執行的程式所使用。對於bash這個Shell程式來說,可以透過變數名稱來存取對應的環境變量,透過export來設定環境變數。下面透過幾個實例來說明。

1)etc/profile:此檔案為系統的每個使用者設定環境資訊,當使用者第一次登入時,該檔案被執行.
並從/etc/profile.d目錄的設定檔中蒐集shell的設定.
註:在這裡我們設定是為所有使用者可使用的全域變數。

2)/etc/bashrc:為每個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.

3)~/.bash_profile:每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.
註:~在LINUX下面是代表HOME這個變量的。
另外在不同的LINUX作業系統下,這個檔案可能是不同的,可能是~/.bash_profile; ~/.bash_login或~/.profile其中的一種或幾種,如果存在幾種的話,那麼執行的順序是:~/.bash_profile、 ~/.bash_login、 ~/.profile。例如我用的是Ubuntu,我的用戶資料夾下預設的只有~/.profile檔。

4)~/.bashrc:該檔案包含專用於你的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檔似乎沒有。

5)~/.bash_logout:當每次退出系統(退出bash shell)時,執行該檔案.
另外,/etc/profile中設定的變數(全域)的可以作用於任何使用者,而~/ .bashrc等設定的變數(局部)只能繼承/etc/profile中的變數,他們是"父子"關係.

~/.bash_profile 是互動式、login 方式進入bash 運行的
~/​​.bashrc是互動式non-login 方式進入bash 運行的
通常二者設定大致相同,所以通常前者會呼叫後者。

好的,總結一下他們的執行方式:
當你登入並且登入shell是bash時,bash首先執行/etc/profile檔案中的命令(如果該檔案存在),然後它順序尋找~ /.bash_profile, ~/.bash_login或~/.profile檔,並執行找到的第一個可讀檔中的指令.當登入bash退出時,它將執行~/.bash_logout檔中的指令.
當啟動一個互動的bash時,它將執行~/.bashrc檔案中的命令(如果該檔案存在並且可讀).當非交互地啟動以運行一個shell腳本時,bash將查找bash_env環境變數,確定執行檔的名稱.


第二篇資料
-------------------------------------------- ------------------------------------

在登入Linux時要執行檔案的程序如下:
在剛登入Linux時,先啟動/etc/profile 文件,然後再啟動使用者目錄下的~/.bash_profile; ~/.bash_login或~/.profile檔案中的其中一個(根據不同的linux作業系統的不同,命名不一樣! !

如果 ~/.bash_profile檔案存在的話,一般還會執行 ~/.bashrc檔案。

因為在~/.bash_profile檔案中一般會有下面的程式碼:
if [ -f ~/.bashrc ] ; then
. ./bashrc
fi
~/.bashrc中,一般還會有以下程式碼:
if [ -f /etc/bashrc ] ; then
. /bashrc
fi
所以,~/.bashrc會呼叫/etc/bashrc檔。最後,在退出shell時,也會執行 ~/.bash_logout檔。
執行順序為:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout
關於各個檔案的作用域,在網路上找到了以下說明:
(1)/etc/profile: 此檔案為系統的每個使用者設定環境資訊,當使用者第一次登入時,該檔案被執行. 並從/etc/profile .d目錄的設定檔中蒐集shell的設定。
(2)/etc/bashrc: 為每一個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取。
(3)~/.bash_profile: 每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔。
(4)~/.bashrc: 該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該檔案被讀取。
(5)
~/.bash_logout:當每次退出系統(退出bash shell)時,執行該檔案.
另外,/etc/profile中設定的變數(全域)的可以作用於任何使用者,而~ /.bashrc等設定的變數(局部)只能繼承
/etc/profile中的變數,他們是"父子"關係。
(6)~/.bash_profile 是互動式、login 方式進入 bash 運行的~/.bashrc 是互動式 non-login 方式進入 bash 運行的通常二者設定大致相同,所以通常前者會呼叫後者。
/etc/profile和/etc/environment等各種環境變數設定檔的用處
先將export加入/etc/profile ,退出系統重新登錄,登入提示顯示英文。
將/etc/profile 中的export刪除,將LNAG=zh_CN加入/etc/environment,登出系統重新登錄,登入提示顯示中文。
用戶環境建立的過程中總是先執行/etc/profile然後在讀取/etc/environment。為什麼會有如上所敘的不同呢?
應該是先執行/etc/environment,後執行/etc/profile。
/etc/environment是設定整個系統的環境,而/etc/profile是設定所有使用者的環境,前者與登入使用者無關,後者與登入使用者有關。
系統應用程式的執行與使用者環境可以是無關的,但與系統環境是相關的,所以當你登入時,你看到的提示訊息,像日期、時間訊息的顯示格式與系統環境的LANG是相關的,預設LANG=en_US,如果系統環境LANG=zh_CN,則提示訊息是中文的,否則是英文的。
對於使用者的SHELL初始化而言是先執行/etc/profile,再讀取檔案/etc/environment.對整個系統而言是先執行/etc/environment。這樣理解正確嗎?
/etc/enviroment --> /etc/profile --> $HOME/.profile -->$HOME/.env (如果存在)
/etc/profile 是所有使用者的環境變數
/etc/enviroment是系統的環境變數
登陸系統時shell讀取的順序應該是
/etc/profile ->/etc/enviroment -->$HOME/.profile -->$HOME/.env
原因應該是jtw所說的用戶環境和系統環境的區別了
如果同一個變數在使用者環境(/etc/profile)和系統環境(/etc/environment)有不同的值那應該是以使用者環境為準了。

更多Linux 環境變數設定的幾種方法相關文章請關注PHP中文網!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境