Linux環(huán)境變量及其設(shè)置

簡介

環(huán)境變量是在操作系統(tǒng)中一個具有特定名字的對象见坑,它包含了一個或多個應(yīng)用程序?qū)⑹褂玫降男畔⑶眚恰inux是一個多用戶的操作系統(tǒng)违施,每個用戶登錄系統(tǒng)時都會有一個專用的運行環(huán)境,通常情況下每個用戶的默認(rèn)的環(huán)境都是相同的尚蝌。這個默認(rèn)環(huán)境就是一組環(huán)境變量的定義迎变。每個用戶都可以通過修改環(huán)境變量的方式對自己的運行環(huán)境進行配置。

分類

根據(jù)環(huán)境變量的生命周期我們可以將其分為永久性變量和臨時性變量飘言,根據(jù)用戶等級的不同又可以將其分為系統(tǒng)級變量和用戶級變量衣形。怎么分都無所謂,主要是對它的理解热凹。

對所有用戶生效的永久性變量(系統(tǒng)級)

這類變量對系統(tǒng)內(nèi)的所有用戶都生效泵喘,所有用戶都可以使用這類變量。作用范圍是整個系統(tǒng)般妙。?

設(shè)置方式: 用vim在/etc/profile文件中添加我們想要的環(huán)境變量纪铺。?

當(dāng)然,這個文件只有在root(超級用戶)下才能修改碟渺。我們可以在etc目錄下使用ls -l查看這個文件的用戶及權(quán)限鲜锚。?

利用vim打開/etc/ profile文件,用export指令添加環(huán)境變量苫拍。?

【注意】:添加完成后新的環(huán)境變量不會立即生效芜繁,除非你調(diào)用source /etc/profile 該文件才會生效。否則只能在下次重進此用戶時才能生效绒极。

對單一用戶生效的永久性變量(用戶級)

該類環(huán)境變量只對當(dāng)前的用戶永久生效骏令。也就是說假如用戶A設(shè)置了此類環(huán)境變量,這個環(huán)境變量只有A可以使用垄提。而對于其他的B,C,D,E….用戶等等榔袋,這個變量是不存在的。

設(shè)置方法:在用戶主目錄”~”下的隱藏文件 “.bash_profile”中添加自己想要的環(huán)境變量铡俐。?

查看隱藏文件: ls -a或ls -al?

利用vim打開文件凰兑,利用export添加環(huán)境變量。與上相同审丘。同樣注意吏够,添加完成后新的環(huán)境變量不會立即生效,除非你調(diào)用source ./.bash_profile 該文件才會生效滩报。否則只能在下次重進此用戶時才能生效锅知。

可以看到我在上圖中用紅框框住了兩個文件,.bashrc和.bash_profile露泊。原則上來說設(shè)置此類環(huán)境變量時在這兩個文件任意一個里面添加都是可以的喉镰。

~/.bash_profile是交互式login方式進入bash shell運行。?

~/ .bashrc是交互式non-login方式進入bash shell運行惭笑。

二者設(shè)置大致相同侣姆。通俗點說生真,就是.bash_profile文件只會在用戶登錄的時候讀取一次,而.bashrc在每次打開終端進行一次新的會話時都會讀取捺宗。

臨時有效的環(huán)境變量(只對當(dāng)前shell有效)

此類環(huán)境變量只對當(dāng)前的shell有效柱蟀。當(dāng)我們退出登錄或者關(guān)閉終端再重新打開時,這個環(huán)境變量就會消失蚜厉。是臨時的长已。

設(shè)置方法:直接使用export指令添加。?

設(shè)置環(huán)境變量常用的幾個指令

echo

查看顯示環(huán)境變量昼牛,使用時要加上符號“”例:echoPATH

export

設(shè)置新的環(huán)境變量?

export 新環(huán)境變量名=內(nèi)容?

例:export MYNAME=”LLZZ”

修改環(huán)境變量

修改環(huán)境變量沒有指令术瓮,可以直接使用環(huán)境變量名進行修改。?

例:MYNAME=”ZZLL”

env

查看所有環(huán)境變量

set

查看本地定義的所有shell變量

unset

刪除一個環(huán)境變量?

例 unset MYNAME

readonly

設(shè)置只讀環(huán)境變量贰健。?

例:readonly MYNAME

常用的幾個環(huán)境變量(一般都為大寫)

PATH

指定命令的搜索路徑胞四。通過設(shè)置環(huán)境變量PATH可以讓我們運行程序或指令更加方便。?

echo $PATH 查看環(huán)境變量PATH伶椿。?

每一個冒號都是一個路徑辜伟,這些搜索路徑都是一些可以找到可執(zhí)行程序的目錄列表。當(dāng)我們輸入一個指令時脊另,shell會先檢查命令是否是內(nèi)部命令导狡,不是的話會再檢查這個命令是否是一個應(yīng)用程序。然后shell會試著從這些搜索路徑偎痛,即PATH(上圖中路徑)中尋找這些應(yīng)用程序旱捧。如果shell在這些路徑目錄里沒有找到可執(zhí)行文件。則會報錯踩麦。若找到廊佩,shell內(nèi)部命令或應(yīng)用程序?qū)⒈环纸鉃橄到y(tǒng)調(diào)用并傳給Linux內(nèi)核。

舉個例子:?

現(xiàn)在有一個c程序test.c通過gcc編譯生成的可執(zhí)行文件a.out(功能:輸出helloworld)靖榕。我們平常執(zhí)行這個a.out的時候是使用?

①相對路徑調(diào)用方式: ./a.out (”.”代表當(dāng)前目錄,”/”分隔符)顽铸。?

②還可以使用絕對路徑調(diào)用方式:將其全部路徑寫出:/home/hry/test/a.out(此路徑是我的工作目錄路徑茁计,只是個例子,僅供參考)?

③通過設(shè)置PATH環(huán)境變量谓松,直接用文件名調(diào)用:?

在沒設(shè)置PATH前星压,我們直接使用a.out調(diào)用程序會報錯,因為shell并沒有從PATH已擁有的搜索路徑目錄中找到a.out這個可執(zhí)行程序鬼譬。?

使用export指令娜膘,將a.out的路徑添加到搜索路徑當(dāng)中,export PATH=$PATH:路徑?

我們就可以使用a.out直接執(zhí)行程序优质。?

HOME

指定用戶的主工作目錄竣贪,即為用戶登錄到Linux系統(tǒng)中時的默認(rèn)目錄军洼,即“~”。

HISTSIZE

指保存歷史命令記錄的條數(shù)演怎。我們輸入的指令都會被系統(tǒng)保存下來匕争,這個環(huán)境變量記錄的就是保持指令的條數(shù)。一般為1000爷耀。?

這些歷史指令都被保存在用戶工作主目錄“~”下的隱藏文件.bash_profile中甘桑。?

我們可以通過指令history來查看。?

LOGNAME

指當(dāng)前用戶的登錄名

HOSTNAME

指主機的名稱歹叮。

SHELL

指當(dāng)前用戶用的是哪種shell

LANG/LANGUGE

和語言相關(guān)的環(huán)境變量跑杭,使用多種語言的用戶可以修改此環(huán)境變量。

MAIL

指當(dāng)前用戶的郵件存放目錄

PS1

命令提示符咆耿,root用戶是#德谅,普通用戶是$

PS2

附屬提示符,默認(rèn)是“>”

SECONDS

從當(dāng)前shell開始運行所流逝的秒數(shù)

總結(jié)

環(huán)境變量是和shell緊密相關(guān)的票灰,用戶登錄系統(tǒng)后就啟動了一個shell女阀,對于Linux來說一般是bash(Bourne Again shell,Bourne shell(sh)的擴展)屑迂,也可以切換到其他版本的shell浸策。bash有兩個基本的系統(tǒng)級配置文件:/etc/bashrc和/etc/profile。這些配置文件包含了兩組不同的變量:shell變量和環(huán)境變量惹盼。shell變量是局部的庸汗,而環(huán)境變量是全局的。環(huán)境變量是通過shell命令來設(shè)置手报。設(shè)置好的環(huán)境變量又可以被所以當(dāng)前用戶的程序使用蚯舱。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市掩蛤,隨后出現(xiàn)的幾起案子枉昏,更是在濱河造成了極大的恐慌,老刑警劉巖揍鸟,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兄裂,死亡現(xiàn)場離奇詭異,居然都是意外死亡阳藻,警方通過查閱死者的電腦和手機晰奖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來腥泥,“玉大人匾南,你說我怎么就攤上這事』淄猓” “怎么了蛆楞?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵溯乒,是天一觀的道長。 經(jīng)常有香客問我臊岸,道長橙数,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任帅戒,我火速辦了婚禮灯帮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逻住。我一直安慰自己钟哥,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布瞎访。 她就那樣靜靜地躺著腻贰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扒秸。 梳的紋絲不亂的頭發(fā)上播演,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機與錄音伴奥,去河邊找鬼写烤。 笑死,一個胖子當(dāng)著我的面吹牛拾徙,可吹牛的內(nèi)容都是我干的洲炊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼尼啡,長吁一口氣:“原來是場噩夢啊……” “哼暂衡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起崖瞭,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤狂巢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后书聚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體隧膘,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年寺惫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蹦疑。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡西雀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出歉摧,到底是詐尸還是另有隱情艇肴,我是刑警寧澤腔呜,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站再悼,受9級特大地震影響核畴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冲九,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一谤草、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧莺奸,春花似錦丑孩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至甚疟,卻和暖如春仗岖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背览妖。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工轧拄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人黄痪。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓紧帕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親桅打。 傳聞我的和親對象是個殘疾皇子是嗜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容