新聞中心
在Linux系統(tǒng)中,環(huán)境變量是非常重要的一個(gè)概念。它們是操作系統(tǒng)中存儲(chǔ)特定信息并在系統(tǒng)中使用的變量。每個(gè)環(huán)境變量都有一個(gè)名稱和一個(gè)值。Linux系統(tǒng)在運(yùn)行時(shí)會(huì)讀取這些環(huán)境變量,并根據(jù)其中的值來(lái)決定系統(tǒng)的行為。

因此,對(duì)于開(kāi)發(fā)者和系統(tǒng)管理員來(lái)說(shuō),了解如何查看所有環(huán)境變量是必要的。在本文中,我們將介紹兩種方法來(lái)查看所有環(huán)境變量。
方法一:使用printenv命令
在Linux系統(tǒng)中,可以使用printenv命令來(lái)查看所有環(huán)境變量。這個(gè)命令將顯示所有當(dāng)前正在使用的環(huán)境變量的名稱和值。使用這種方法是非常簡(jiǎn)單的,只需要打開(kāi)終端并輸入如下命令:
“`
printenv
“`
然后按回車鍵,就會(huì)顯示所有的環(huán)境變量。
需要注意的是,Linux系統(tǒng)中有很多環(huán)境變量,有些環(huán)境變量可能會(huì)被刪減或增加。因此,打印出的環(huán)境變量可能并不完全相同。
方法二:使用env命令
還有一種查看環(huán)境變量的方法是使用env命令。這個(gè)命令將顯示當(dāng)前運(yùn)行環(huán)境中所有的環(huán)境變量。
使用這種方法同樣也非常簡(jiǎn)單,只需要打開(kāi)終端并輸入如下命令:
“`
env
“`
然后按回車鍵,就會(huì)顯示所有的環(huán)境變量。
需要注意的是,和printenv命令相似,使用env命令同樣也有可能不會(huì)顯示所有的環(huán)境變量。
我們今天介紹了兩種方法來(lái)查看Linux系統(tǒng)中的所有環(huán)境變量。使用printenv命令和env命令都可以達(dá)到我們的目的。雖然兩種方法都可以使用,但是通常來(lái)說(shuō),大多數(shù)開(kāi)發(fā)者和系統(tǒng)管理員都會(huì)使用printenv命令。
無(wú)論你選擇哪一種方法,了解你計(jì)算機(jī)上所有的環(huán)境變量是非常重要的。因?yàn)檫@將使您在使用系統(tǒng)時(shí)更加靈活,同時(shí)也有助于您解決各種問(wèn)題。
相關(guān)問(wèn)題拓展閱讀:
- 怎么設(shè)置 linux環(huán)境變量配置
怎么設(shè)置 linux環(huán)境變量配置
Linux環(huán)境變量基礎(chǔ)配置說(shuō)明
1、直接用export命令:
#export PATH=$PATH:/opt/au1200_rm/build_tools/bin
查看是否已經(jīng)設(shè)好,可用命令export查看:
# export
declare -x BASH_ENV=”/root/.bashrc”
declare -x G_BROKEN_FILENAMES=”1″
declare -x HISTSIZE=”1000″
declare -x HOME=”/root”
declare -x HOSTNAME=”localhost.localdomain”
declare -x INPUTRC=”/etc/inputrc”
declare -x LANG=”zh_CN.GB18030″
declare -x LANGUAGE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”
declare -x LESSOPEN=”|/usr/bin/lesspipe.sh %s”
declare -x LOGNAME=”root”
declare -x LS_COLORS=”no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*NaNd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:”
declare -x MAIL=”/var/spool/mail/root”
declare -x OLDPWD=”/opt/au1200_rm/build_tools”
declare -x PATH=”/usr/local/in:/usr/local/bin:/in:/bin:/usr/in:/usr/bin:/usr/X11R6/bin:/root/bin:/opt/au1200_rm/build_tools/bin”
declare -x PWD=”/opt/au1200_rm/build_tools/bin”
declare -x SHELL=”/bin/bash”
declare -x SHLVL=”1″
declare -x SSH_ASKPASS=”/usr/libexec/openssh/gnome-ssh-askpass”
declare -x SSH_AUTH_SOCK=”/tmp/ssh-XX3LKWhz/agent.4242″
declare -x SSH_CLIENT=”10.3.37.”
declare -x SSH_CONNECTION=”10.3.37..3.37.186 22″
declare -x SSH_TTY=”/dev/pts/2″
declare -x TERM=”linux”
declare -x USER=”root”
declare -x USERNAME=”root”
可以看到,環(huán)境變量已經(jīng)設(shè)好,PATH里面已經(jīng)有了我要加的編譯器的路徑。
2、修改profile文件:
#vi /etc/profile
在里面加入:
export PATH=”$PATH:/opt/au1200_rm/build_tools/bin”
讓環(huán)境變量立即生效需要執(zhí)行如下命令:
#source /etc/profile
3. 修改.bashrc文件:
# vi /root/.bashrc
在里面加入:
export PATH=”$PATH:/opt/au1200_rm/build_tools/bin”
特別說(shuō)明:
方法2、3
一般需要重新注銷系統(tǒng)才能生效,最后可以通過(guò)echo命令測(cè)試一下:
# echo $PATH
看看輸出里面是不是已經(jīng)有了/my_new_path這個(gè)路徑了。
END
Linux環(huán)境變量配置注意事項(xiàng)
標(biāo)準(zhǔn)位置及非標(biāo)注位置環(huán)境變量:
對(duì)于:“/bin”、“/in”、“/usr/bin”、“/usr/in”、“/usr/local/bin”等路徑已經(jīng)在系統(tǒng)環(huán)境變量中了,如果可執(zhí)行文件在這幾個(gè)標(biāo)準(zhǔn)位置,在終端命令行輸入該軟件可執(zhí)行文件的文件名和參數(shù)(如果需要參數(shù)),回車即可。
如果不在標(biāo)準(zhǔn)位置,文件名前面需要加上完整的路徑。
不過(guò)每次都這樣跑就太麻煩了,一個(gè)“一勞永逸”的辦法是把這個(gè)路徑加入環(huán)境變量。命令 “PATH=$PATH:路徑”可以把這個(gè)路徑加入環(huán)境變量,但是退出這個(gè)命令行就失效了。要想永久生效,需要把這行添加到環(huán)境變量文件里。有兩個(gè)文件可選:“/etc/profile”和用戶主目錄下的“.bash_profile”,“/etc/profile”對(duì)系統(tǒng)里所有用戶都有效,用戶主目錄下的“.bash_profile”只對(duì)這個(gè)用戶有效。
“PATH=$PATH:路徑1:路徑2:…:路徑n”,意思是可執(zhí)行文件的路徑包括原先設(shè)定的路徑,也包括從“路徑1”到“路徑n”的所有路徑。當(dāng)用戶輸入一個(gè)一串字符并按回車后,shell會(huì)依次在這些路徑里找對(duì)應(yīng)的可執(zhí)行文件并交給系統(tǒng)核心執(zhí)行。那個(gè)“$PATH”表示原先設(shè)定的路徑仍然有效,注意不要漏掉。某些軟件可能還有“PATH”以外類型的環(huán)境變量需要添加,但方法與此相同,并且也需要注意“$”。
注意,與DOS/Window不同,Linux類系統(tǒng)環(huán)境變量中路徑名用冒號(hào)分隔,不是分號(hào)。另外,軟件越裝越多,環(huán)境變量越添越多,為了避免造成混亂,建議所有語(yǔ)句都添加在文件結(jié)尾,按軟件的安裝順序添加。
格式如下():
# 軟件名-版本號(hào)
PATH=$PATH:路徑1:路徑2:…:路徑n
其他環(huán)境變量=$其他環(huán)境變量:…
在“profile”和“.bash_profile”中,“#”是注釋符號(hào),寫(xiě)在這里除了視覺(jué)分隔外沒(méi)有任何效果。
設(shè)置完畢,注銷并重新登錄,設(shè)置就生效了。如果不注銷,直接在shell里執(zhí)行這些語(yǔ)句,也能生效,但是作用范圍只限于執(zhí)行了這些語(yǔ)句的shell。
相關(guān)的環(huán)境變量生效后,就不必老跑到軟件的可執(zhí)行文件目錄里去操作了。
END
Linux配置示例:配置java環(huán)境變量
1.修改/etc/profile文件
如果你的計(jì)算機(jī)僅僅作為開(kāi)發(fā)使用時(shí)推薦使用這種方法,因?yàn)樗杏脩舻膕hell都有權(quán)使用這些環(huán)境變量,可能會(huì)給系統(tǒng)帶來(lái)安全性問(wèn)題。
(1)用文本編輯器打開(kāi)/etc/profile
(2)在profile文件末尾加入:
JAVA_HOME=/usr/share/jdk1.5.0_05
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
(3)重新登錄
注解:
a. 你要將 /usr/share/jdk1.5.0_05jdk 改為你的jdk安裝目錄
b. linux下用冒號(hào)“:”來(lái)分隔路徑
c. $PATH / $CLASSPATH / $JAVA_HOME 是用來(lái)引用原來(lái)的環(huán)境變量的值,在設(shè)置環(huán)境變量時(shí)特別要注意不能把原來(lái)的值給覆蓋掉了,這是一種常見(jiàn)的錯(cuò)誤。
d. CLASSPATH中當(dāng)前目錄“.”不能丟,把當(dāng)前目錄丟掉也是常見(jiàn)的錯(cuò)誤。
e. export是把這三個(gè)變量導(dǎo)出為全局變量。
f. 大小寫(xiě)必須嚴(yán)格區(qū)分。
2. 修改.bashrc文件
這種方法更為安全,它可以把使用這些環(huán)境變量的權(quán)限控制到用戶級(jí)別,如果你需要給某個(gè)用戶權(quán)限使用這些環(huán)境變量,你只需要修改其個(gè)人用戶主目錄下的.bashrc文件就可以了。
(1)用文本編輯器打開(kāi)用戶目錄下的.bashrc文件
(2)在.bashrc文件末尾加入:
set JAVA_HOME=/usr/share/jdk1.5.0_05
export JAVA_HOME
set PATH=$JAVA_HOME/bin:$PATH
export PATH
set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH
(3)重新登錄
3. 直接在shell下設(shè)置變量
不贊成使用這種方法,因?yàn)閾Q個(gè)shell,你的設(shè)置就無(wú)效了,因此這種方法僅僅是臨時(shí)使用,以后要使用的時(shí)候又要重新設(shè)置,比較麻煩。
只需在shell終端執(zhí)行下列命令:
export JAVA_HOME=/usr/share/jdk1.5.0_05
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
END
LinuxRedHat 9.0環(huán)境變量配置
變量簡(jiǎn)介
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)境變量。
常見(jiàn)的環(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ì)于普通用戶是$,也可以使用一些更復(fù)雜的值。
$PS2:是附屬提示符,默認(rèn)是“>”??梢酝ㄟ^(guò)修改此環(huán)境變量來(lái)修改當(dāng)前的命令符,比如下列命令會(huì)將提示符修改成字符串“Hello,My NewPrompt ”。
# PS1=” Hello,My NewPrompt ”
$IFS:輸入域分隔符。當(dāng)shell讀取輸入時(shí),用來(lái)分隔單詞的一組字符,它們通常是空格、制表符和換行符。
$0:shell腳本的名字。
例如,在我的Linux系統(tǒng)中:
$ echo $0
/bin/bash
$#:傳遞給腳本的參數(shù)個(gè)數(shù)。
:shell腳本的進(jìn)程號(hào),腳本程序通常會(huì)用它生成一個(gè)唯一的臨時(shí)文件,如/tmp/tmfile_
例如,在我的Linux系統(tǒng)中:
$ echo $$
#表示當(dāng)前shell進(jìn)程號(hào)為31038
export命令
export命令將作為他參數(shù)的變量導(dǎo)入到子shell中,并使之在子shell中有效。export命令把自己的參數(shù)創(chuàng)建為一個(gè)環(huán)境變量,而這個(gè)環(huán)境變量可以被其他腳本和當(dāng)前程序調(diào)用的程序看見(jiàn)。
4.1 實(shí)驗(yàn) 導(dǎo)出變量
(1)我們先列出腳本程序export2
#!/bin/sh
echo “$foo”
echo “$bar”
?。?)然后是腳本export1。在這個(gè)腳本的結(jié)尾,我們調(diào)用export2:
#!/bin/sh
foo=”The first meta-syntactic variable”
export bar=”The second meta-syntactic variable”
export2
運(yùn)行這個(gè)腳本,將得到如下的輸出:
$ export1
#這是個(gè)空格,是因?yàn)樽兞縡oo在export2中不可用,所以$foo被復(fù)制為空
The second meta-syntactic variable
$
4.2 設(shè)置一個(gè)新的環(huán)境變量WELCOME
$ export WELCOME=”Hello!”
$ echo $WELCOME
Hello!
定制環(huán)境變量
環(huán)境變量是和 Shell 緊密相關(guān)的,用戶登錄系統(tǒng)后就啟動(dòng)了一個(gè) Shell 。對(duì)于 Linux 來(lái)說(shuō)一般是 bash ,但也可以重新設(shè)定或切換到其它的 Shell 。根據(jù)發(fā)行版本的情況, bash 有兩個(gè)基本的系統(tǒng)級(jí)配置文件: /etc/bashrc 和 /etc/profile 。這些配置文件包含兩組不同的變量: shell 變量和環(huán)境變量。前者只是在特定的 shell 中固定(如 bash ),后者在不同 shell 中固定。很明顯, shell 變量是局部的,而環(huán)境變量是全局的。環(huán)境變量是通過(guò) Shell 命令來(lái)設(shè)置的,設(shè)置好的環(huán)境變量又可以被所有當(dāng)前用戶所運(yùn)行的程序所使用。對(duì)于 bash 這個(gè) Shell 程序來(lái)說(shuō),可以通過(guò)變量名來(lái)訪問(wèn)相應(yīng)的環(huán)境變量,通過(guò) export 來(lái)設(shè)置環(huán)境變量。下面通過(guò)幾個(gè)實(shí)例來(lái)說(shuō)明。
5.1 使用命令echo 顯示環(huán)境變量
#本例使用echo顯示常見(jiàn)的變量HOME
$ echo $HOME
/home/lqm
5.2 設(shè)置一個(gè)新的環(huán)境變量
$ export HELLO=“Hello!”
$ echo $HELLO
Hello!
5.3 使用 env 命令顯示所有的環(huán)境變量
$ env
SSH_AGENT_PID=1875
HOSTNAME=lqm
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
……
5.4 使用set 命令顯示所有本地定義的Shell 變量
$ set
BASH=/bin/bash
……
5.5 使用 unset 命令來(lái)清除環(huán)境變量
$ 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# 此命令無(wú)輸出,證明環(huán)境變量 TEST 已經(jīng)存在了
5.6 使用 readonly 命令設(shè)置只讀變量
如果使用了 readonly 命令的話,變量就不可以被修改或清除了。示例如下:
$ export TEST=”Test”# 增加一個(gè)環(huán)境變量 TEST
$ readonly TEST #將環(huán)境變量TEST設(shè)為只讀
$ unset TEST#會(huì)發(fā)現(xiàn)此變量不能被刪除
-bash: unset: TEST: cannot unset: readonly variable
$ TEST=”New” #會(huì)發(fā)現(xiàn)此變量不能被修改
-bash: TEST: readonly variable
5.7 用C 程序來(lái)訪問(wèn)和設(shè)置環(huán)境變量
對(duì)于 C 程序的用戶來(lái)說(shuō),可以使用下列三個(gè)函數(shù)來(lái)設(shè)置或訪問(wèn)一個(gè)環(huán)境變量。
getenv() 訪問(wèn)一個(gè)環(huán)境變量。輸入?yún)?shù)是需要訪問(wèn)的變量名字,返回值是一個(gè)字符串。如果所訪問(wèn)的環(huán)境變量不存在,則會(huì)返回 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;
}
5.8 通過(guò)修改環(huán)境變量定義文件來(lái)修改環(huán)境變量。
需要注意的是,一般情況下,這僅僅對(duì)于普通用戶適用,避免修改根用戶的環(huán)境定義文件,因?yàn)槟菢涌赡軙?huì)造成潛在的危險(xiǎn)。
$vi /etc/bashrc #修改shell變量
$vi /etc/profile#修改環(huán)境變量定義文件
然后編輯你的 PATH 聲明,其格式為:
PATH=$PATH::::——:
你可以自己加上指定的路徑,中間用冒號(hào)隔開(kāi)。
環(huán)境變量更改后,在用戶下次登陸時(shí)生效,如果想立刻生效,
則可執(zhí)行下面的語(yǔ)句:$ source .bash_profile
定制環(huán)境變量需要注意的是,更好不要把當(dāng)前路徑 “./” 放到 PATH 里,這樣可能會(huì)受到意想不到的攻擊。完成后,可以通過(guò) $ echo $PATH 查看當(dāng)前的搜索路徑。這樣定制后,就可以避免頻繁的啟動(dòng)位于 shell 搜索的路徑之外的程序了。
1、直接用export命令:
#export PATH=$PATH:/opt/au1200_rm/build_tools/bin
查看是否已經(jīng)設(shè)好,可用命令export查看:
# export
declare -x BASH_ENV=”/root/.bashrc”
declare -x G_BROKEN_FILENAMES=”1″
declare -x HISTSIZE=”1000″
declare -x HOME=”/root”
declare -x HOSTNAME=”localhost.localdomain”
關(guān)于linux 顯示所有的環(huán)境變量的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)網(wǎng)絡(luò)推廣網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),網(wǎng)站建設(shè)公司,網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),1500元定制網(wǎng)站優(yōu)化全包,先排名后付費(fèi),已為上千家服務(wù),聯(lián)系電話:13518219792
文章標(biāo)題:Linux如何查看所有環(huán)境變量(linux顯示所有的環(huán)境變量)
本文地址:http://fisionsoft.com.cn/article/dhpppho.html


咨詢
建站咨詢
