hengheng123456789

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            297 Posts :: 68 Stories :: 144 Comments :: 0 Trackbacks

          我們在Linux下安裝系統(tǒng)軟件的時(shí)候,經(jīng)常遇到一些系統(tǒng)環(huán)境變量配置的問題。什么是環(huán)境變量?如何定制環(huán)境變量?我將在下面做一些介紹。

          一、什么是環(huán)境變量?
          Linux是一個(gè)多用戶的操作系統(tǒng)。多用戶意味著每個(gè)用戶登錄系統(tǒng)后,都有自己專用的運(yùn)行環(huán)境。而這個(gè)環(huán)境是由一組變量所定義,這組變量被稱為環(huán)境變量。用戶可以對自己的環(huán)境變量進(jìn)行修改以達(dá)到對環(huán)境的要求。

          二、定制環(huán)境變量
          環(huán)境變量是和Shell緊密相關(guān)的,它是通過Shell命令來設(shè)置的。環(huán)境變量又可以被所有當(dāng)前用戶所運(yùn)行的程序所使用。對于bash來說,可以通過變量名來訪問相應(yīng)的環(huán)境變量。
          下面通過幾個(gè)實(shí)例來說明

          1.顯示環(huán)境變量HOME
          $ echo $HOME
          /home/admin

          2.設(shè)置一個(gè)新的環(huán)境變量NAME
          $ export NAME="RaidCheng"
          $ echo $NAME
          RaidCheng

          3.使用env命令顯示所有的環(huán)境變量
          $ env
          HOSTNAME=test
          TERM=vt100
          SHELL=/bin/bash
          HISTSIZE=1000
          SSH_CLIENT=202.xxx.xxx.xxx 53694 22
          CATALINA_BASE=/usr/local/jakarta-tomcat
          SSH_TTY=/dev/pts/0
          ANT_HOME=/usr/local/ant
          JAVA_OPTS=-server
          USER=admin
          ...

          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'
          CATALINA_BASE=/usr/local/jakarta-tomcat
          CATALINA_HOME=/usr/local/jakarta-tomcat
          ...

          5.使用unset命令來清除環(huán)境變量
          $ export NAME="RaidCheng"
          $ echo $NAME
          RaidCheng
          $ unset NAME
          $ echo $NAME

          6.使用readonly命令設(shè)置只讀變量
          $ export NAME="RaidCheng"
          $ readonly NAME
          $ unset NAME
          -bash: unset: NAME: cannot unset: readonly variable
          $ NAME="New" #會發(fā)現(xiàn)此也變量不能被修改
          -bash: TEST: readonly variable

          三、常見的環(huán)境變量
          PATH      決定了shell將到哪些目錄中尋找命令或程序
          HOME      當(dāng)前用戶主目錄
          HISTSIZE    歷史記錄數(shù)
          LOGNAME     當(dāng)前用戶的登錄名
          HOSTNAME    指主機(jī)的名稱
          SHELL      前用戶Shell類型
          LANGUGE     語言相關(guān)的環(huán)境變量,多語言可以修改此環(huán)境變量
          MAIL      當(dāng)前用戶的郵件存放目錄
          PS1       基本提示符,對于root用戶是#,對于普通用戶是$
          PS2       附屬提示符,默認(rèn)是“>”

          四、通過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;
          }

          五、環(huán)境變量文件
          通過修改一些相關(guān)的環(huán)境定義文件來修改環(huán)境變量,比如對于RedHat,與環(huán)境相關(guān)的文件有/etc/profile和~/.bash_profile等。修改完畢后重新登錄一次或運(yùn)行命令source xxx就生效了。

          posted on 2006-08-30 11:59 哼哼 閱讀(347) 評論(0)  編輯  收藏 所屬分類: Linux
          主站蜘蛛池模板: 建始县| 句容市| 离岛区| 邓州市| 中江县| 贵港市| 绥中县| 浦江县| 稷山县| 察隅县| 平定县| 保康县| 达尔| 罗源县| 德江县| 本溪| 海林市| 茶陵县| 彝良县| 平利县| 鄢陵县| 临桂县| 宜川县| 旺苍县| 永宁县| 朔州市| 洮南市| 宣化县| 西峡县| 洪洞县| 财经| 绥阳县| 安化县| 灯塔市| 吉木乃县| 富蕴县| 县级市| 德安县| 黄大仙区| 洪湖市| 青龙|