學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

linux環(huán)境變量命令

時(shí)間: 佳洲1085 分享

  在linux下通常每個(gè)用戶默認(rèn)的環(huán)境都是相同的,這個(gè)默認(rèn)環(huán)境實(shí)際上就是一組環(huán)境變量的定義。下面由學(xué)習(xí)啦小編為大家整理了linux環(huán)境變量命令的相關(guān)知識,希望對大家有所幫助。

  1.linux環(huán)境變量是什么

  環(huán)境變量是一個(gè)具有特定名字的對象,它包含了一個(gè)或者多個(gè)應(yīng)用程序所將使用到的信息。許多用戶(特別是那些剛接觸Linux的新手)發(fā)現(xiàn)這些變量有些怪異或者難以控制。其實(shí),這是個(gè)誤會:通過使用環(huán)境變量,你可以很容易的修改一個(gè)牽涉到一個(gè)或多個(gè)應(yīng)用程序的配置信息。

  2.linux常見的環(huán)境變量

  對于PATH和HOME等環(huán)境變量大家都不陌生。PATH能夠指定命令的搜索路徑,那么動態(tài)鏈接庫的路徑用什么變量指定呢?或者就是在PATH里面?比如有一個(gè)程序需要/usr/local/lib下面的一個(gè)庫文件,應(yīng)該怎么指定其路徑呢?經(jīng)??吹接行┳兞咳鏛D_LIBRARY_PATH,LIBPATH,CLASSPATH等,他們之間有什么不同和關(guān)系?

  除此之外,還有下面一些常見環(huán)境變量。

  ◆HISTSIZE是指保存歷史命令記錄的條數(shù)。

  ◆LOGNAME是指當(dāng)前用戶的登錄名。

  ◆HOSTNAME是指主機(jī)的名稱,許多應(yīng)用程序如果要用到主機(jī)名的話,通常是從這個(gè)環(huán)境變量中來取得的。

  ◆SHELL是指當(dāng)前用戶用的是哪種Shell。

  ◆LANG/LANGUGE是和語言相關(guān)的環(huán)境變量,使用多種語言的用戶可以修改此環(huán)境變量。

  ◆MAIL是指當(dāng)前用戶的郵件存放目錄。

  ◆PS1是基本提示符,對于root用戶是#,對于普通用戶是$。PS2是附屬提示符,默認(rèn)是“>”??梢酝ㄟ^修改此環(huán)境變量來修改當(dāng)前的命令符,比如下列命令會將提示符修改成字符串“Hello,My NewPrompt ”。

  # PS1=" Hello,My NewPrompt "

  Hello,My NewPrompt

  除了這些常見的環(huán)境變量,許多應(yīng)用程序在安裝時(shí)也會增加一些環(huán)境變量,比如使用Java就要設(shè)置JAVA_HOME和CLASSPATH等,而安裝五筆輸入法會增加環(huán)境變量"XMODIFIERS=@im=fcitx"等。

  3.linux環(huán)境變量命令

  環(huán)境變量是和Shell緊密相關(guān)的,用戶登錄系統(tǒng)后就啟動了一個(gè)Shell。對于Linux來說一般是bash,但也可以重新設(shè)定或切換到其它的Shell。環(huán)境變量是通過Shell命令來設(shè)置的,設(shè)置好的環(huán)境變量又可以被所有當(dāng)前用戶所運(yùn)行的程序所使用。對于bash這個(gè)Shell程序來說,可以通過變量名來訪問相應(yīng)的環(huán)境變量,通過export來設(shè)置環(huán)境變量。下面通過幾個(gè)實(shí)例來說明。

  1. 顯示環(huán)境變量HOME

  $ echo $HOME /home/terry

  2. 設(shè)置一個(gè)新的環(huán)境變量WELCOME

  $ export WELCOME="Hello!" $ echo $WELCOME Hello!

  3. 使用env命令顯示所有的環(huán)境變量

  $ env HOSTNAME=terry.mykms.org PVM_RSH=/usr/bin/rsh SHELL=/bin/bash TERM=xterm HISTSIZE=1000 ...

  4. 使用set命令顯示所有本地定義的Shell變量

  $ set BASH=/bin/bash BASH_VERSINFO=([0]="2"[1]="05b"[2]="0"[3]="1"[4]="release"[5]="i386-redhat-linux-gnu") BASH_VERSION='2.05b.0(1)-release' COLORS=/etc/DIR_COLORS.xterm COLUMNS=80 DIRSTACK=() DISPLAY=:0.0 ...

  5. 使用unset命令來清除環(huán)境變量

  set可以設(shè)置某個(gè)環(huán)境變量的值。清除環(huán)境變量的值用unset命令。如果未指定值,則該變量值將被設(shè)為NULL。示例如下:$ export TEST="Test..." #增加一個(gè)環(huán)境變量TEST $ env|grep TEST #此命令有輸入,證明環(huán)境變量TEST已經(jīng)存在了TEST=Test... $ unset $TEST #刪除環(huán)境變量TEST $ env|grep TEST #此命令沒有輸出,證明環(huán)境變量TEST已經(jīng)存在了

  6. 使用readonly命令設(shè)置只讀變量

  如果使用了readonly命令的話,變量就不可以被修改或清除了。示例如下:$ export TEST="Test..." #增加一個(gè)環(huán)境變量TEST $ readonly TEST #將環(huán)境變量TEST設(shè)為只讀$ unset TEST #會發(fā)現(xiàn)此變量不能被刪除-bash: unset: TEST: cannot unset: readonly variable $ TEST="New" #會發(fā)現(xiàn)此也變量不能被修改-bash: TEST: readonly variable

  7. 用C程序來訪問和設(shè)置環(huán)境變量

  對于C程序的用戶來說,可以使用下列三個(gè)函數(shù)來設(shè)置或訪問一個(gè)環(huán)境變量。

  ◆getenv()訪問一個(gè)環(huán)境變量。輸入?yún)?shù)是需要訪問的變量名字,返回值是一個(gè)字符串。如果所訪問的環(huán)境變量不存在,則會返回NULL。

  ◆setenv()在程序里面設(shè)置某個(gè)環(huán)境變量的函數(shù)。

  ◆unsetenv()清除某個(gè)特定的環(huán)境變量的函數(shù)。

  另外,還有一個(gè)指針變量environ,它指向的是包含所有的環(huán)境變量的一個(gè)列表。下面的程序可以打印出當(dāng)前運(yùn)行環(huán)境里面的所有環(huán)境變量:

  #include extern char**environ; int main () { char**var; for (var =environ;*var !=NULL;++var) printf ("%s \n ",*var); return 0; }

  還可以通過修改一些相關(guān)的環(huán)境定義文件來修改環(huán)境變量,比如對于Red Hat等Linux發(fā)行版本,與環(huán)境相關(guān)的文件有/etc/profile和~/.bashrc等。修改完畢后重新登錄一次就生效了。

3598746