轉載--linux 環境變數講解
轉自:https://www.cnblogs.com/Joans/p/7760378.html
1、在Windows 系統下,很多軟體安裝都需要配置環境變數,比如 安裝 jdk ,如果不配置環境變數,在非軟體安裝的目錄下執行javac 命令,將會報告找不到檔案,類似的錯誤。
2、那麼什麼是環境變數?簡單說,就是指定一個目錄,執行軟體的時候,相關的程式將會按照該目錄尋找相關檔案。 設定變數對於一般人最實用的功能就是: 不用拷貝某些dll檔案到系統目錄中了,而path 這一系統變數就是系統搜尋dll檔案的一系列路徑
在Linux系統下,如果你下載並安裝應用程式,很有可能在鍵入它的名稱的時候出現 “command not found ” 的提示內容。 如果每次都到安裝目錄資料夾內,找到可執行檔案來進行操作就太繁瑣了。 這涉及到環境變數path的設定問題,而Path 的設定也是在Linux下定製環境變數的一個組成部分
Linux下環境變數設定的三種方法:
如想將一個路徑加入到$PATH中,可以像下面這樣做:
只對當前的shell 起作用的環境變數
1、控制檯中設定,不贊成這種方式,因為他只對當前的shell 起作用,換一個shell設定就無效了:
直接控制檯中輸入 : $PATH="$PATH":/NEW_PATH (關閉shell Path會還原為原來的path)
對所有的使用者的都起作用的環境變數
2、修改 /etc/profile 檔案,如果你的計算機僅僅作為開發使用時推存使用這種方法,因為所有使用者的shell都有權使用這個環境變數,可能會給系統帶來安全性問題。這裡是針對所有的使用者的,所有的shell
vi /etc/profile
在/etc/profile的最下面新增: export PATH="$PATH:/NEW_PATH"
針對當前特定的使用者起作用的環境變數
3、修改bashrc檔案,這種方法更為安全,它可以把使用這些環境變數的許可權控制到使用者級別,這裡是針對某一特定的使用者,如果你需要給某個使用者許可權使用這些環境變數,你只需要修改其個人使用者主目錄下的 .bashrc檔案就可以了。
vi ~/.bashrc
在下面新增:
Export PATH="$PATH:/NEW_PATH"
Ubuntu Linux系統環境變數配置檔案:
/etc/profile : 在登入時,作業系統定製使用者環境時使用的第一個檔案 ,此檔案為系統的每個使用者設定環境資訊,當用戶第一次登入時,該檔案被執行。
/etc /environment : 在登入時作業系統使用的第二個檔案, 系統在讀取你自己的profile前,設定環境檔案的環境變數。
~/.profile : 在登入時用到的第三個檔案 是.profile檔案,每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當用戶登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案。
/etc/bashrc : 為每一個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.
~/.bashrc : 該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該該檔案被讀取。
PASH環境變數的設定方法:
方法一:使用者主目錄下的.profile或.bashrc檔案(推薦)
登入到你的使用者(非root),在終端輸入:
$ sudo gedit ~/.profile(or .bashrc)
可以在此檔案末尾加入PATH的設定如下:
export PATH=”$PATH:your path1:your path2 ...”
儲存檔案,登出再登入,變數生效。
該方式新增的變數只對當前使用者有效。
方法二:系統目錄下的profile檔案(謹慎)
在系統的etc目錄下,有一個profile檔案,編輯該檔案:
$ sudo gedit /etc/profile
在最後加入PATH的設定如下:
export PATH=”$PATH:your path1:your path2 ...”
該檔案編輯儲存後,重啟系統,變數生效。
該方式新增的變數對所有的使用者都有效。
方法三:系統目錄下的 environment 檔案(謹慎)
在系統的etc目錄下,有一個environment檔案,編輯該檔案:
$ sudo gedit /etc/environment
找到以下的 PATH 變數:
PATH="<......>"
修改該 PATH 變數,在其中加入自己的path即可,例如:
PATH="<......>:your path1:your path2 …"
各個path之間用冒號分割。該檔案也是重啟生效,影響所有使用者。
注意這裡不是新增export PATH=… 。
方法四:直接在終端下輸入
$ sudo export PATH="$PATH:your path1:your path2 …"
這種方式變數立即生效,但使用者登出或系統重啟後設置變成無效,適合臨時變數的設定。
注 意:方法二和三的修改需要謹慎,尤其是通過root使用者修改,如果修改錯誤,將可能導致一些嚴重的系統錯誤。因此筆者推薦使用第一種方法。另外嵌入式 Linux的開發最好不要在root下進行(除非你對Linux已經非常熟悉了!!),以免因為操作不當導致系統嚴重錯誤。
下面是一個對environment檔案錯誤修改導致的問題以及解決方法示例:
問題:因為不小心在 etc/environment裡設在環境變數導致無法登入
提示:不要在 etc/environment裡設定 export PATH這樣會導致重啟後登入不了系統
解決方法:
在登入介面 alt +ctrl+f1進入命令模式,如果不是root使用者需要鍵入(root使用者就不許這麼羅嗦,gedit編輯會不可顯示)
/usr/bin/sudo /usr/bin/vi /etc/environment
游標移到export PATH** 行,連續按 d兩次刪除該行;
輸入:wq儲存退出;
然後鍵入/sbin/reboot重啟系統(可能會提示need to boot,此時直接power off)