環境變數分為系統內容變數和使用者環境變數。系統內容變數,對所有使用者起作用,而使用者環境變數只對目前使用者起作用。系統內容變數:
/etc/profile:此檔案為系統的每個使用者佈建環境資訊,當使用者第一次登入時,該檔案被執行.並從/etc/profile.d目錄的設定檔中搜集shell的設定.
/etc/bashrc:為每一個運行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.
目前使用者變數:
~/.bash_profile:每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.
~/.bashrc:該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該該檔案被讀取.
~/.bash_logout:當每次退出系統(退出bash shell)時,執行該檔案。
一、什麼是環境變數?
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 附屬提示符,預設是“>”
Linux是一個多使用者的作業系統。每個使用者登入系統後,都會有一個專用的運行環境。通常每個使用者預設的環境都是相同的,這個預設環境實際上就是一組環境變數的定義。使用者可以對自己的運行環境進行定製,其方法就是修改相應的系統內容變數。
環境變數是和Shell緊密相關的,使用者登入系統後就啟動了一個Shell。對於Linux來說一般是bash,但也可以重新設定或切換到其它的 Shell。環境變數是通過Shell命令來設定的,設定好的環境變數又可以被所有目前使用者所啟動並執行程式所使用。對於bash這個Shell程式來說,可 以通過變數名來訪問相應的環境變數,通過export來設定環境變數。
還可以通過修改一些相關的環境定義檔案來修改環境變數,比如對於Red Hat等Linux發行版本,與環境相關的檔案有/etc/profile和~/.bashrc等。修改完畢後重新登入一次就生效了。
/etc/profile:此檔案為系統的每個使用者佈建環境資訊,當使用者第一次登入時,該檔案被執行.
並從/etc/profile.d目錄的設定檔中搜集shell的設定.
/etc/bashrc:為每一個運行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.
~/.bash_profile:每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.
~/.bashrc:該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該
該檔案被讀取.
用Export命令可以設定環境變數,但是如果每回進入系統之後都要重新設定一遍環境變數就很煩人。Linux給大家提供了自動化佈建環境變數的方法,那就 是更改 .bashrc 檔案。 一般說來,有兩個檔案可以提供這種“進入系統時自動化佈建”的功能,一個是 /etc/bashrc,另一個是 ~/.bashrc。其中/etc/bashrc是被每個使用者執行的,而~/.bashrc只被目前使用者執行。所以/etc/bashrc只有root用 戶能更改,而~/.bashrc是各個使用者私人的檔案。 "~"指的是使用者的home目錄。
export只是將新加的環境變數臨時存在記憶體中,重啟或開啟新的shell會話之後就不存在瞭解決方法:
1.修改/etc/profile
重啟之後,環境變數還是在的。但是不推薦這麼做,因為這樣的設定將對所有使用者的shell都生效,對系統安全會產生影響。
2.修改~/.bashrc檔案