環(huán)境變量
在 linux 系統(tǒng)下隔缀,如果你下載并安裝了應(yīng)用程序,很有可能在鍵入它的名稱時出現(xiàn)“command not
found”的提示內(nèi)容。如果每次都到安裝目標文件夾內(nèi)薪伏,找到可執(zhí)行文件來進行操作就太繁瑣了。這涉
及到環(huán)境變量 PATH 的設(shè)置問題粗仓,而 PATH 的設(shè)置也是在 linux 下定制環(huán)境變量的一個組成部分嫁怀。
環(huán)境變量可以讓子程序繼續(xù)引用的原因,是因為:
- 當(dāng)啟動一個 shell 借浊,操作系統(tǒng)分配一記憶區(qū)塊給 shell 使用塘淑,此區(qū)域之變量可以讓子程序存
取蚂斤; - 利用 export 功能存捺,可以讓變量的內(nèi)容寫到上述的記憶區(qū)塊當(dāng)中(環(huán)境變量);
當(dāng)加載另一個 shell 時 (亦即啟動子程序曙蒸,而離開原本的父程序了)捌治,子 shell 3. 可以將父shell 的環(huán)境變量所在的記憶區(qū)塊導(dǎo)入自己的環(huán)境變量區(qū)塊當(dāng)中。所以環(huán)境變量是和 Shell 緊密相關(guān)的纽窟,用戶登錄系統(tǒng)后就啟動了一個 Shell肖油。對于 Linux 來說一般是 bash,但也可以重新設(shè)定或切換到其它的 Shell(使用 chsh 命令)臂港。根據(jù)發(fā)行版本的情況构韵,bash 有兩個基本的系統(tǒng)級配置文件:/etc/bashrc 和/etc/profile。這些配置文件包含兩組不同的變量:shell 變量和環(huán)境變量趋艘。前者只是在特定的 shell 中固定(如 bash)疲恢,后者在不同 shell 中固定。很明顯瓷胧,shell 變量是局部的显拳,而環(huán)境變量是全局的。環(huán)境變量是通過 Shell命令來設(shè)置的搓萧,設(shè)置好的環(huán)境變量又可以被所有當(dāng)前用戶所運行的程序所使用杂数。對于 bash 這個 Shell程序來說,可以通過變量名來訪問相應(yīng)的環(huán)境變量瘸洛,通過 export 來設(shè)置環(huán)境變量揍移。
Linux環(huán)境變量的種類
按環(huán)境變量的生存周期來劃分,Linux 的環(huán)境變量可分為兩類:
- 永久的:需要修改配置文件反肋,變量永久生效那伐。
- 臨時的:使用export命令行聲明即可,變量在關(guān)閉shell時失效。
設(shè)置變量的三種方法
- 在/etc/profile文件中添加變量對所有用戶生效(永久的)罕邀,用 VI 在文件/etc/profile 文件中增加變量畅形,該變量將會對 Linux 下所有用戶有效,并且是“永久生效”诉探。
- 在用戶目錄下的.bash_profile文件中增加變量對單一用戶生效(永久的)日熬,用 VI 在用戶目錄下的.bash_profile 文件中增加變量,改變量僅會對當(dāng)前用戶有效肾胯,并且是“永久的”竖席。
- 直接運行export命令定義變量【只對當(dāng)前shell(BASH)有效(臨時的)】,在 shell 的命令行下直接使用[export 變量名=變量值]定義變量敬肚,該變量只在當(dāng)前的 shell(BASH)或其子 shell(BASH)下是有效的怕敬,shell 關(guān)閉了,變量也就失效了帘皿,再打開新 shell 時就沒有這個變量东跪,需要使用的話還需要重新定義。
常見的環(huán)境變量
PATH:決定了 shell 將到哪些目錄中尋找命令或程序
HOME:當(dāng)前用戶主目錄
MAIL:是指當(dāng)前用戶的郵件存放目錄鹰溜。
SHELL:是指當(dāng)前用戶用的是哪種 Shell虽填。
HISTSIZE:是指保存歷史命令記錄的條數(shù)。
LOGNAME:是指當(dāng)前用戶的登錄名曹动。
HOSTNAME:是指主機的名稱斋日,許多應(yīng)用程序如果要用到主機名的話,通常是從這個環(huán)境變量中來取得的墓陈。
LANG/LANGUGE:是和語言相關(guān)的環(huán)境變量恶守,使用多種語言的用戶可以修改此環(huán)境變量。
PS1:是基本提示符贡必,對于 root 用戶是#兔港,對于普通用戶是$。
PS2:是附屬提示符仔拟,默認是“>”衫樊。可以通過修改此環(huán)境變量來修改當(dāng)前的命令符利花,比如下列命令會將提示符修改成字符串“Hello,My NewPrompt :) ”科侈。