Linux環境變量及其設置


簡介

環境變量是在操作系統中一個具有特定名字的對象,它包含了一個或多個應用程序將使用到的信息。Linux是一個多用戶的操作系統,每個用戶登錄系統時都會有一個專用的運行環境,通常情況下每個用戶的默認的環境都是相同的。這個默認環境就是一組環境變量的定義。每個用戶都可以通過修改環境變量的方式對自己的運行環境進行配置。

分類

根據環境變量的生命周期我們可以將其分為永久性變量和臨時性變量,根據用戶等級的不同又可以將其分為系統級變量和用戶級變量。怎么分都無所謂,主要是對它的理解。

對所有用戶生效的永久性變量(系統級)

這類變量對系統內的所有用戶都生效,所有用戶都可以使用這類變量。作用范圍是整個系統。 
設置方式: 用vim在/etc/profile文件中添加我們想要的環境變量。 
當然,這個文件只有在root(超級用戶)下才能修改。我們可以在etc目錄下使用ls -l查看這個文件的用戶及權限。 
這里寫圖片描述

利用vim打開/etc/ profile文件,用export指令添加環境變量。 
這里寫圖片描述

【注意】:添加完成后新的環境變量不會立即生效,除非你調用source /etc/profile 該文件才會生效。否則只能在下次重進此用戶時才能生效。

這里寫圖片描述

對單一用戶生效的永久性變量(用戶級)

該類環境變量只對當前的用戶永久生效。也就是說假如用戶A設置了此類環境變量,這個環境變量只有A可以使用。而對於其他的B,C,D,E….用戶等等,這個變量是不存在的。

設置方法:在用戶主目錄”~”下的隱藏文件 “.bash_profile”中添加自己想要的環境變量。 
查看隱藏文件: ls -a或ls -al 
這里寫圖片描述 
利用vim打開文件,利用export添加環境變量。與上相同。同樣注意,添加完成后新的環境變量不會立即生效,除非你調用source ./.bash_profile 該文件才會生效。否則只能在下次重進此用戶時才能生效。

可以看到我在上圖中用紅框框住了兩個文件,.bashrc和.bash_profile。原則上來說設置此類環境變量時在這兩個文件任意一個里面添加都是可以的。

~/.bash_profile是交互式login方式進入bash shell運行。 
~/ .bashrc是交互式non-login方式進入bash shell運行。

二者設置大致相同。通俗點說,就是.bash_profile文件只會在用戶登錄的時候讀取一次,而.bashrc在每次打開終端進行一次新的會話時都會讀取。

臨時有效的環境變量(只對當前shell有效)

此類環境變量只對當前的shell有效。當我們退出登錄或者關閉終端再重新打開時,這個環境變量就會消失。是臨時的。

設置方法:直接使用export指令添加。 
這里寫圖片描述

設置環境變量常用的幾個指令

echo

查看顯示環境變量,使用時要加上符號“echoPATH

export

設置新的環境變量 
export 新環境變量名=內容 
例:export MYNAME=”LLZZ”

修改環境變量

修改環境變量沒有指令,可以直接使用環境變量名進行修改。 
例:MYNAME=”ZZLL”

env

查看所有環境變量

set

查看本地定義的所有shell變量

unset

刪除一個環境變量 
例 unset MYNAME

readonly

設置只讀環境變量。 
例:readonly MYNAME

常用的幾個環境變量(一般都為大寫)

PATH

指定命令的搜索路徑。通過設置環境變量PATH可以讓我們運行程序或指令更加方便。 
echo $PATH 查看環境變量PATH。 
這里寫圖片描述

每一個冒號都是一個路徑,這些搜索路徑都是一些可以找到可執行程序的目錄列表。當我們輸入一個指令時,shell會先檢查命令是否是內部命令,不是的話會再檢查這個命令是否是一個應用程序。然后shell會試着從這些搜索路徑,即PATH(上圖中路徑)中尋找這些應用程序。如果shell在這些路徑目錄里沒有找到可執行文件。則會報錯。若找到,shell內部命令或應用程序將被分解為系統調用並傳給Linux內核。

舉個例子: 
現在有一個c程序test.c通過gcc編譯生成的可執行文件a.out(功能:輸出helloworld)。我們平常執行這個a.out的時候是使用 
①相對路徑調用方式: ./a.out (”.”代表當前目錄,”/”分隔符)。 
②還可以使用絕對路徑調用方式:將其全部路徑寫出:/home/lzk/test/a.out(此路徑是我的工作目錄路徑,只是個例子,僅供參考) 
這里寫圖片描述 
③通過設置PATH環境變量,直接用文件名調用: 
在沒設置PATH前,我們直接使用a.out調用程序會報錯,因為shell並沒有從PATH已擁有的搜索路徑目錄中找到a.out這個可執行程序。 
這里寫圖片描述 
使用export指令,將a.out的路徑添加到搜索路徑當中,export PATH=$PATH:路徑 
我們就可以使用a.out直接執行程序。 
這里寫圖片描述

HOME

指定用戶的主工作目錄,即為用戶登錄到Linux系統中時的默認目錄,即“~”。

HISTSIZE

指保存歷史命令記錄的條數。我們輸入的指令都會被系統保存下來,這個環境變量記錄的就是保持指令的條數。一般為1000。 
這里寫圖片描述

這些歷史指令都被保存在用戶工作主目錄“~”下的隱藏文件.bash_profile中。 
這里寫圖片描述

我們可以通過指令history來查看。 
這里寫圖片描述

LOGNAME

指當前用戶的登錄名

HOSTNAME

指主機的名稱。

SHELL

指當前用戶用的是哪種shell

LANG/LANGUGE

和語言相關的環境變量,使用多種語言的用戶可以修改此環境變量。

MAIL

指當前用戶的郵件存放目錄

PS1

命令提示符,root用戶是#,普通用戶是$

PS2

附屬提示符,默認是“>”

SECONDS

從當前shell開始運行所流逝的秒數

總結

環境變量是和shell緊密相關的,用戶登錄系統后就啟動了一個shell,對於Linux來說一般是bash(Bourne Again shell,Bourne shell(sh)的擴展),也可以切換到其他版本的shell。bash有兩個基本的系統級配置文件:/etc/bashrc和/etc/profile。這些配置文件包含了兩組不同的變量:shell變量和環境變量。shell變量是局部的,而環境變量是全局的。環境變量是通過shell命令來設置。設置好的環境變量又可以被所以當前用戶的程序使用。

 

 

引文鏈接:Linux環境變量及其設置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM