天天看點

linux 環境變量總結(轉)

我們在Linux下安裝系統軟體的時候,經常遇到一些系統環境變量配置的問題。什麼是環境變量?如何定制環境變量?我将在下面做一些介紹。

一、什麼是環境變量?

Linux是一個多使用者的作業系統。多使用者意味着每個使用者登入系統後,都有自己專用的運作環境。而這個環境是由一組變量所定義,這組變量被稱為環境變量。使用者可以對自己的環境變量進行修改以達到對環境的要求。

二、定制環境變量

環境變量是和Shell緊密相關的,它是通過Shell指令來設定的。環境變量又可以被所有目前使用者所運作的程式所使用。對于bash來說,可以通過變量名來通路相應的環境變量。

下面通過幾個執行個體來說明

1.顯示環境變量HOME

$ echo $HOME

/home/admin

2.設定一個新的環境變量NAME

$ export NAME="RaidCheng"

$ echo $NAME

RaidCheng

3.使用env指令顯示所有的環境變量

$ 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指令來清除環境變量

$ export NAME="RaidCheng"

$ echo $NAME

RaidCheng

$ unset NAME

$ echo $NAME

6.使用readonly指令設定隻讀變量

$ export NAME="RaidCheng"

$ readonly NAME

$ unset NAME

-bash: unset: NAME: cannot unset: readonly variable

$ NAME="New" #會發現此也變量不能被修改

-bash: TEST: readonly variable

三、常見的環境變量

PATH      決定了shell将到哪些目錄中尋找指令或程式

HOME      目前使用者主目錄

HISTSIZE    曆史記錄數

LOGNAME     目前使用者的登入名

HOSTNAME    指主機的名稱

SHELL      前使用者Shell類型

LANGUGE     語言相關的環境變量,多語言可以修改此環境變量

MAIL      目前使用者的郵件存放目錄

PS1       基本提示符,對于root使用者是#,對于普通使用者是$

PS2       附屬提示符,預設是“>”

四、通過C程式來通路和設定環境變量

對于C程式的使用者來說,可以使用下列三個函數來設定或通路一個環境變量。

getenv()通路一個環境變量。輸入參數是需要通路的變量名字,傳回值是一個字元串。如果所通路的環境變量不存在,則會傳回NULL

setenv()在程式裡面設定某個環境變量的函數

unsetenv()清除某個特定的環境變量的函數

另外,還有一個指針變量environ,它指向的是包含所有的環境變量的一個清單。下面的程式可以列印出目前運作環境裡面的所有環境變量:

#include

extern char**environ;

int main ()

{

char**var;

for (var =environ;*var !=NULL;++var)

printf ("%s /n ",*var);

return 0;

}

五、環境變量檔案

通過修改一些相關的環境定義檔案來修改環境變量,比如對于RedHat,與環境相關的檔案有/etc/profile和~/.bash_profile等。修改完畢後重新登入一次或運作指令source xxx就生效了。

繼續閱讀