Linux系統(tǒng)中的環(huán)境變量知識(shí)詳解
對(duì)于沒有使用過linux系統(tǒng)的用戶來(lái)說(shuō),有很多術(shù)語(yǔ)和功能都很陌生。本文就介紹了linux系統(tǒng)中的環(huán)境變量的相關(guān)知識(shí),具體內(nèi)容如下所述。
linux是一個(gè)多用戶的操作系統(tǒng)。每個(gè)用戶登錄系統(tǒng)后,都會(huì)有一個(gè)專用的運(yùn)行環(huán)境。通常每個(gè)用戶默認(rèn)的環(huán)境都是相同的,這個(gè)默認(rèn)環(huán)境實(shí)際上就是一組環(huán)境變量的定義。用戶可以對(duì)自己的運(yùn)行環(huán)境進(jìn)行定制,其方法就是修改相應(yīng)的系統(tǒng)環(huán)境變量。
什么是環(huán)境變量
環(huán)境變量是一個(gè)具有特定名字的對(duì)象,它包含了一個(gè)或者多個(gè)應(yīng)用程序所將使用到的信息。許多用戶(特別是那些剛接觸Linux的新手)發(fā)現(xiàn)這些變量有些怪異或者難以控制。其實(shí),這是個(gè)誤會(huì):通過使用環(huán)境變量,你可以很容易的修改一個(gè)牽涉到一個(gè)或多個(gè)應(yīng)用程序的配置信息。
重要的例子
下表羅列了一些Linux系統(tǒng)使用的變量并說(shuō)明了它們的用處。在表格后面將列舉一些變量例值。
變量說(shuō)明
PATH這個(gè)變量包含了一系列由冒號(hào)分隔開的目錄,系統(tǒng)就從這些目錄里尋找可執(zhí)行文件。如果你輸入的可執(zhí)行文件(例如ls、rc-update或者emerge)不在這些目錄中,系統(tǒng)就無(wú)法執(zhí)行它(除非你輸入這個(gè)命令的完整路徑,如/bin/ls)。
ROOTPATH這個(gè)變量的功能和PATH相同,但它只羅列出超級(jí)用戶(root)鍵入命令時(shí)所需檢查的目錄。
LDPATH這個(gè)變量包含了一系列用冒號(hào)隔開的目錄,動(dòng)態(tài)鏈接器將在這些目錄里查找?guī)煳募?/p>
MANPATH這個(gè)變量包含了一系列用冒號(hào)隔開的目錄,命令man會(huì)在這些目錄里搜索man頁(yè)面。
INFODIR這個(gè)變量包含了一系列用冒號(hào)隔開的目錄,命令info將在這些目錄里搜索info頁(yè)面。
PAGER這個(gè)變量包含了瀏覽文件內(nèi)容的程序的路徑(例如less或者more)。
EDITOR這個(gè)變量包含了修改文件內(nèi)容的程序(文件編輯器)的路徑(比如nano或者vi)。
KDEDIRS這個(gè)變量包含了一系列用冒號(hào)隔開的目錄,里面放的是KDE相關(guān)的資料。
CONFIG_PROTECT這個(gè)變量包含了一系列用空格隔開的目錄,它們?cè)诟碌臅r(shí)候會(huì)被Portage保護(hù)起來(lái)。
CONFIG_PROTECT_MASK這個(gè)變量包含了一系列用空格隔開的目錄,它們?cè)诟碌臅r(shí)候不會(huì)被Portage保護(hù)起來(lái)。
下面你可以找到所有這些變量定義的范例:
代碼1:定義范例
- PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
- ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
- LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
- MANPATH="/usr/share/man:/usr/local/share/man"
- INFODIR="/usr/share/info:/usr/local/share/info"
- PAGER="/usr/bin/less"
- EDITOR="/usr/bin/vim"
- KDEDIRS="/usr"
- CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb/opt/tomcat/conf"
- /usr/kde/3.1/share/config/usr/share/texmf/tex/generic/config/"
- /usr/share/texmf/tex/platex/config//usr/share/config"
- CONFIG_PROTECT_MASK="/etc/gconf"
對(duì)于bashshell
關(guān)于環(huán)境變量命令介紹:
1.echo顯示某個(gè)環(huán)境變量值echo$PATH
2.export設(shè)置一個(gè)新的環(huán)境變量exportHELLO="hello"(可以無(wú)引號(hào))
3.env顯示所有環(huán)境變量
4.set顯示本地定義的shell變量
5.unset清除環(huán)境變量unsetHELLO
6.readonly設(shè)置只讀環(huán)境變量readonlyHELLO
常見的環(huán)境變量
PATH:決定了shell將到哪些目錄中尋找命令或程序
HOME:當(dāng)前用戶主目錄
MAIL:是指當(dāng)前用戶的郵件存放目錄。
SHELL:是指當(dāng)前用戶用的是哪種Shell。
HISTSIZE:是指保存歷史命令記錄的條數(shù)
LOGNAME:是指當(dāng)前用戶的登錄名。
HOSTNAME:是指主機(jī)的名稱,許多應(yīng)用程序如果要用到主機(jī)名的話,通常是從這個(gè)環(huán)境變量中來(lái)取得的。
LANG/LANGUGE:是和語(yǔ)言相關(guān)的環(huán)境變量,使用多種語(yǔ)言的用戶可以修改此環(huán)境變量。
PS1:是基本提示符,對(duì)于root用戶是#,對(duì)于普通用戶是$。
PS2:是附屬提示符,默認(rèn)是“>”??梢酝ㄟ^修改此環(huán)境變量來(lái)修改當(dāng)前的命令符,比如下列命令會(huì)將提示符修改成字符串“Hello,MyNewPrompt:)”。
#PS1="Hello,MyNewPrompt:)"
使用修改.bashrc文件進(jìn)行環(huán)境變量的編輯,只對(duì)當(dāng)前用戶有用。
使用修改/etc/profile文件進(jìn)行環(huán)境變量的編輯,是對(duì)所有用戶有用。大家一定要注意區(qū)別。
如何設(shè)置Shell環(huán)境變量?
Shell | 設(shè)置 | 添加 | 去除 | 顯示當(dāng)前值 | 注解 |
sh | NAME=value1 export NAME |
NAME=value2:$NAME | unset NAME | set(internal)或者env(exported) | 如果需要子進(jìn)程也看到該環(huán)境變量,需要使用export |
ksh | NAME=value1 export NAME |
NAME=value2:$NAME | unset NAME | set(internal)或者env(exported) | 如果需要子進(jìn)程也看到該環(huán)境變量,需要使用export |
csh | setenv NAME value1 | setenv NAME value2:$NAME | unsetenv NAME | set | 不需要使用export |
bash | NAME=value1 | NAME=value2:$NAME | unset NAME | set或者env | 如果需要子進(jìn)程也看到該環(huán)境變量,需要使用export |
總結(jié):
希望本文 介紹的Linux系統(tǒng)中的環(huán)境變量的知識(shí)能夠?qū)ψx者有所幫助,更多有關(guān)linux系統(tǒng)的知識(shí)還有待于讀者去探索和學(xué)習(xí)。
【編輯推薦】