Linux是一個(gè)多用戶的操作系統(tǒng)。多用戶意味著每個(gè)用戶登錄系統(tǒng)后,都有自己專用的運(yùn)行環(huán)境。而這個(gè)環(huán)境是由一組變量所定義,這組變量被稱為環(huán)境變量。用戶可以對(duì)自己的環(huán)境變量進(jìn)行修改以達(dá)到對(duì)環(huán)境的要求。
環(huán)境變量是和Shell緊密相關(guān)的,它是通過Shell命令來設(shè)置的。環(huán)境變量又可以被所有當(dāng)前用戶所運(yùn)行的程序所使用。對(duì)于bash來說,可以通過變量名來訪問相應(yīng)的環(huán)境變量。
2.顯示
使用env命令或者printenv命令可以察看所有環(huán)境變量。
使用echo顯示特定環(huán)境變量值,eg:
$?echo?$HOME
/home/admin
3.設(shè)置一個(gè)新的環(huán)境變量
$?export?NAME=
"
Example
"
$?echo?$NAME
Example
4.使用unset命令來清除環(huán)境變量
$?unset?NAME
$?echo?$NAME
5.使用readonly命令設(shè)置只讀變量(設(shè)置為只讀屬性后,其值將不可變,直到進(jìn)程結(jié)束)
$?export?NAME=
"
Example
"
$?readonly?NAME
$?unset?NAME
-bash:?unset:?NAME:?cannot?unset:?readonly?variable
$?NAME=
"
New
"
?#會(huì)發(fā)現(xiàn)此也變量不能被修改
-bash:?TEST:?readonly?variable?
?
6.在C程序中訪問和設(shè)置環(huán)境變量
對(duì)于C程序的用戶來說,可以使用下列三個(gè)函數(shù)來設(shè)置或訪問一個(gè)環(huán)境變量:
getenv()訪問一個(gè)環(huán)境變量。輸入?yún)?shù)是需要訪問的變量名字,返回值是一個(gè)字符串。如果所訪問的環(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;
}?
?
7.修改系統(tǒng)配置文件
通過修改一些相關(guān)的環(huán)境定義文件來修改環(huán)境變量,與環(huán)境相關(guān)的文件有/etc/profile(root用戶)和~/.bash_profile(普通用戶,在自己的目錄下,隱藏文件,如果沒有可以新建)等。修改完畢后重新登錄一次或運(yùn)行命令source?xxx就生效了。
?
8.常見的環(huán)境變量?
PATH 決定了shell將到哪些目錄中尋找命令或程序
HOME 當(dāng)前用戶主目錄
TERM 終端的類型。
UID 當(dāng)前用戶的識(shí)別字,取值是由數(shù)位構(gòu)成的字串。
PWD 當(dāng)前工作目錄的絕對(duì)路徑名,該變量的取值隨cd命令的使用而變化。
HISTSIZE 歷史記錄數(shù)LOGNAME 當(dāng)前用戶的登錄名?
HOSTNAME 指主機(jī)的名稱
SHELL 前用戶Shell類型?
LANGUGE 語言相關(guān)的環(huán)境變量,多語言可以修改此環(huán)境變量
MAIL 當(dāng)前用戶的郵件存放目錄?
PS1 shell命令行基本提示符,對(duì)于root用戶是#,對(duì)于普通用戶是$
PS2 附屬提示符,默認(rèn)是“>”
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
