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

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