linux中環境變數包括系統級和使用者級,系統級的環境變數是每個登入到系統的使用者都要讀取的系統變數,而使用者級的環境變數則是該使用者使用系統時載入的環境變數。
所以管理環境變數的檔案也分為系統級和使用者級的.
1.系統級:
(1)/etc/environment:是系統在登入時讀取的第乙個檔案,用於為所有程序設定環境變數。系統使用此檔案時並不是執行此檔案中的命令,而是根據key=value模式的**,對key賦值以value,因此檔案中如果要定義path環境變數,只需加入一行形如path=$path:/***/bin的**即可。
(2)/etc/profile:是系統登入時執行的第二個檔案,可以用於設定針對全系統所有使用者的環境變數。該檔案一般是呼叫/etc/bash.bashrc檔案。
/etc/bash.bashrc:系統級的bashrc檔案,為每乙個執行bash shell的使用者執行此檔案。此檔案會在使用者每次開啟shell時執行一次。
注意: /etc/environment是設定整個系統的環境,而/etc/profile是設定所有使用者的環境,前者與登入使用者無關,後者與登入使用者有關。 這兩個檔案修改後一般都要重啟系統才能生效。
2.使用者級(這些檔案處於家目錄下)
(1)~/.profile:是對應當前登入使用者的profile檔案,用於定製當前使用者的個人工作環境。
每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案。這裡是推薦放置個人設定的地方
(2)~/.bashrc:是對應當前登入使用者的bash初始化檔案,當使用者每次開啟shell時,系統都會執行此檔案一次。平時設定這個檔案就可以了。
那麼根據以上描述,這幾個檔案的執行先後順序應當是:
/etc/enviroment –>/etc/profile –>~/.profile –>/etc/bash.bashrc–> ~/.bashrc
1、在linux下設定環境變數時,如果只是臨時用一下,可以直接在shell下用set或export命令設定環境變數。只能在當前shell指令碼下可用.,切換到另乙個終端就會失效。
#終端輸入:
export pythonpath=/home/yanting/learning/ssd-caffe/python #pythonpath設定為該路徑
#終端檢視乙個特定環境變數包含的內容,比如pythonpath
echo $pythonpath
2、如果希望此環境變數每次開機或開啟shell時自動設定而無須每次都手動設定,那麼需要將export命令寫入以上的系統檔案中。例如:
(1)此方法對單一使用者生效(永久的)
在使用者主目錄」~」下的隱藏檔案 「.bashrc」中新增自己想要的環境變數,檢視隱藏檔案: ls -a或ls -al (檔名前有.的都是隱藏檔案)
注意使用者主目錄下一般存在.bashrc和.bash_profile。原則上來說設定此類環境變數時在這兩個檔案任意乙個裡面新增都是可以的。
~/.bash_profile是互動式login方式進入bash shell執行。
~/ .bashrc是互動式non-login方式進入bash shell執行。
二者設定大致相同。通俗點說,就是.bash_profile檔案只會在使用者登入的時候讀取一次,而.bashrc在每次開啟終端進行一次新的會話時都會讀取
開啟當前使用者環境變數:
終端輸入:sudo gedit ~/.bashrc,輸入使用者密碼,則會開啟.bashrc檔案,
在其末尾新增:
export pythonpath=/home/yanting/learning/caffe/python:$pythonpath
# path採用:來分隔,冒號左右不需要空格.
# :$pythonpath在後面新新增的path優先搜尋,$pythonpath:在前面說明新新增的path後面搜尋,不加代表新路徑設定為pythonpath路徑。
其中/home/yanting/learning/caffe/python為自己需要設定的環境變數路徑。
在終端執行:source ~/.bashrc ,使其立即生效,或者重啟電腦即可。
(2)此方法對所有使用者生效(永久的)
在終端使用 sudo gedit /etc/profile 開啟環境變數的檔案,然後將自己的環境變數加入到檔案之後,用export 執行。
在終端裡面使用source /etc/profile 來更新環境變數,不然只能在下次重進此使用者時生效
3、採用export新增新的路徑到環境變數path中。
#比如新增搜尋路徑/home/cc/path1和/home/cc/path2 路徑到path中,採用:來分隔,冒號左右不需要空格
export path=$path:/home/cc/path1:/home/cc/path2
#若需要將路徑放在優先搜尋位置,將$path放在後面
export path=/home/cc/path1:/home/cc/pck:$path
1、使用echo命令檢視單個環境變數。例如:
echo $path
2、 使用env檢視所有環境變數。例如:
env
3 、使用set檢視所有本地定義的環境變數。
4、使用export檢視所有環境變數
5、使用unset刪除指定的環境變數。例如:
set可以設定某個環境變數的值。清除環境變數的值用unset命令。如果未指定值,則該變數值將被設為null。示例如下:
export test="test..." #增加乙個環境變數test env|grep test #此命令有輸入,證明環境變數test已經存在了
test=test...
unset test #刪除環境變數test
$ env|grep test #此命令沒有輸出,證明環境變數test已經刪除
6、使用export刪除環境變數。例如:
export mypath=
常用的環境變數
1. path 決定了shell將到哪些目錄中尋找命令或程式(多個路徑用冒號:隔開) ,例如:
使用export指令,將a.out的路徑新增到搜尋路徑當中,export path=$path:路徑
我們就可以使用a.out直接執行程式。
2. home 當前使用者主目錄
3. histsize 歷史記錄數
4. logname 當前使用者的登入名
5. hostname 指主機的名稱
6. shell 當前使用者shell型別
7. languge 語言相關的環境變數,多語言可以修改此環境變數
8. mail 當前使用者的郵件存放目錄
9. ps1 基本提示符,對於root使用者是#,對於普通使用者是$
linux下的環境變數的設定
path說簡單點就是乙個字串變數,當輸入命令的時候linux會去查詢path裡面記錄的路徑。比如在根目錄 下可以輸入命令ls,在 usr目錄下也可以輸入ls,但其實ls這個命令根本不在這個兩個目錄下,事實上當你輸入命令的時候linux會去 bin,usr bin,sbin等目錄下面去找你此時輸入的命...
linux 環境變數的設定
參考 http ubuntuhjbl.jiaogen.com 不再贅述詳細內容,需要總結如下 linux下的環境變數設定涉及的檔案 a.etc profile b.etc environment c.bash profile d.bash rc 另外如果只是為了臨時修改環境變數,path path ...
Linux環境變數的設定
1.設定臨時環境變數 臨時環境變數就是當使用者退出登入後該環境變數消失。直接用命令export,比如設定ant的目錄 export path path home user1 ant 1.7.1 bin 2.設定永久環境變數 1 對所有使用者都起作用的設定,不過這樣做不安全。修改 etc profil...