Linux環(huán)境變量相關(guān)

一、系統(tǒng)環(huán)境變量配置文件

Linux系統(tǒng)環(huán)境變量配置文件分為兩種:系統(tǒng)級文件和用戶級文件拔恰。

1抑片、系統(tǒng)級文件:

/etc/profile:在登錄時仇味,操作系統(tǒng)定制用戶環(huán)境時使用的第一個文件照宝,此文件為系統(tǒng)的每個用戶設(shè)置環(huán)境信息蛇受,當(dāng)用戶第一次登錄時,該文件被執(zhí)行厕鹃。并從/etc/profile.d目錄的配置文件中搜集shell的設(shè)置兢仰,這個文件一般就是調(diào)用/etc/bash.bashrc文件。

/etc/bash.bashrc:系統(tǒng)級的bashrc文件熊响,為每一個運(yùn)行bash shell的用戶執(zhí)行此文件,當(dāng)bash shell被打開時诗赌,該文件被讀取汗茄。(其中ubuntu和debian有/etc/bash.bashrc文件但是沒有/etc/bashrc, 其他的系統(tǒng)基本都是只有/etc/bashrc沒有/etc/bash.bashrc)

/etc/environment: 在登錄時操作系統(tǒng)使用的第二個文件,系統(tǒng)在讀取你自己的profile前,設(shè)置環(huán)境文件的環(huán)境變量铭若。

2洪碳、用戶級文件:

~/.profile: 在登錄時用到的第三個文件,每個用戶都可使用該文件輸入專用于自己使用的shell信息,當(dāng)用戶登錄時,該文件僅僅執(zhí)行一次叼屠!默認(rèn)情況下瞳腌,他設(shè)置一些環(huán)境變量,執(zhí)行用戶的.bashrc文件镜雨。

~/.bashrc:該文件用來給bash初始化比如bash的設(shè)置, bash的代碼補(bǔ)全, bash的別名等等嫂侍。當(dāng)?shù)卿洉r以及每次打開新的shell時,該文件被讀取。

~/.bash_logout:當(dāng)每次退出系統(tǒng)(退出bash shell)時荚坞,執(zhí)行該文件挑宠。

~/.pam_environment:用戶級的環(huán)境變量設(shè)置文件。

另外, 在用戶目錄下可能會存在 ~/.bash_profile, ~/.bash_login這樣的文件, 但如果有這些文件bash就不會去載入 ~/.profile 了, 所以如果存在的話需要刪除 這些文件并把內(nèi)容合并進(jìn) ~/.profile 和 /.bashrc才行颓影。(其中優(yōu)先級:/.bash_profile, ~/.bash_login各淀, ~/.profile)

二、shell的分類

系統(tǒng)的shell有很多種, 比如bash, sh, zsh之類的, 如果要查看某一個用戶使用的是什么 shell 可以通過 finger [USERNAME] 命令來查看诡挂。

1碎浇、login shell 和 no-login shell

“l(fā)ogin shell” 代表用戶登入, 比如使用"su -"命令, 或者用ssh連接到某一個服務(wù)器上, 都會使用該用戶默認(rèn)shell啟動 login shell 模式临谱。
該模式下的 shell 會去自動執(zhí)行

/etc/profile
~/.profile 

但不會執(zhí)行任何的bashrc文件, 所以一般再在/etc/profile 或者 ~/.profile里我們會手動去
source bashrc 文件。

而 no-login shell 的情況是我們在終端下直接輸入 bash 或者 bash -c “CMD” 來啟動的 shell.
該模式下是不會自動去運(yùn)行任何的profile文件奴璃。

2悉默、interactive shell 和 non-interactive shell

interactive shell 是交互式shell, 顧名思義就是用來和用戶交互的, 提供了命令提示符可以輸入命令。
該模式下會存在一個叫 PS1 的環(huán)境變量, 如果還不是login shell的則會source /etc/bash.bashrc和
~/.bashrc文件溺健。

non-interactive shell 則一般是通過 bash -c “CMD” 來執(zhí)行的bash麦牺。

三、執(zhí)行分類

代表在文件內(nèi)部source, 換行的 => 代表自身執(zhí)行結(jié)束以后再source, 同一行表示先source再執(zhí)行自身

1鞭缭、在可能存在的模式組合中 RC 文件的執(zhí)行

SSH login, sudo su - [USER] 或者 mac下開啟終端剖膳、ssh登入和su - 是典型的interactive login shell, 所以會有 PS1 變量, 并且會執(zhí)行

/etc/profile 
    => /etc/bash.bashrc 
~/.profile 
    => ~/.bashrc => /etc/bash.bashrc

2、在命令提示符狀態(tài)下輸入bash或者ubuntu默認(rèn)設(shè)置下打開終端

這樣開啟的是 interactive no-login shell, 所以會有 PS1 變量, 只會執(zhí)行

/etc/bash.bashrc
~/.bashrc => /etc/bash.bashrc

3岭辣、特殊情況

3.1

通過 bash -c “CMD” 或者 bash BASHFILE 命令執(zhí)行的 shell這些命令什么都不會執(zhí)行, 也就是設(shè)置PS1變量, 不執(zhí)行任何RC文件吱晒。

3.2

通過 “ssh server CMD” 執(zhí)行的命令或通過程序執(zhí)行遠(yuǎn)程的命令這是最特殊的一種模式, 理論上應(yīng)該既是非交互也是非登入的, 但是實際上他不會設(shè)置 PS1, 但是還會執(zhí)行:

ssh server "CMD"
/etc/bash.bashrc => /etc/profile
~/.bashrc => | /etc/bash.bashrc => /etc/profile
         | ~/.profile

因此對于剛登錄系統(tǒng)時執(zhí)行文件的順序為:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc-> /etc/bash.bashrc -> ~/.bash_logout(退出shell時)

四、設(shè)置環(huán)境變量的方法

0沦童、查看當(dāng)前環(huán)境變量

echo $PATH

1仑濒、登出后失效

export PATH=PATH:/xxx/xxx/bin

2、修改~/.bashrc 或 ~/.profile (~/.bath_profile) 偷遗、或系統(tǒng)級別的/etc/profile墩瞳,在其中添加:

export PATH=/xxx/xxx/bin:$PATH
source .bashrc   #source命令通常用于重新執(zhí)行剛修改的初始化文件,使之立即生效氏豌,而不必注銷并重新登錄
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末喉酌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子泵喘,更是在濱河造成了極大的恐慌泪电,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纪铺,死亡現(xiàn)場離奇詭異相速,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鲜锚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門突诬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人芜繁,你說我怎么就攤上這事攒霹。” “怎么了浆洗?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵催束,是天一觀的道長。 經(jīng)常有香客問我伏社,道長抠刺,這世上最難降的妖魔是什么塔淤? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮速妖,結(jié)果婚禮上高蜂,老公的妹妹穿的比我還像新娘。我一直安慰自己罕容,他們只是感情好备恤,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锦秒,像睡著了一般露泊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上旅择,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天惭笑,我揣著相機(jī)與錄音,去河邊找鬼生真。 笑死沉噩,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的柱蟀。 我是一名探鬼主播川蒙,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼长已!你這毒婦竟也來了畜眨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤痰哨,失蹤者是張志新(化名)和其女友劉穎胶果,沒想到半個月后匾嘱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體斤斧,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年霎烙,在試婚紗的時候發(fā)現(xiàn)自己被綠了撬讽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡悬垃,死狀恐怖游昼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情尝蠕,我是刑警寧澤烘豌,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站看彼,受9級特大地震影響廊佩,放射性物質(zhì)發(fā)生泄漏囚聚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一标锄、第九天 我趴在偏房一處隱蔽的房頂上張望顽铸。 院中可真熱鬧,春花似錦料皇、人聲如沸谓松。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鬼譬。三九已至,卻和暖如春舷手,著一層夾襖步出監(jiān)牢的瞬間拧簸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工男窟, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留盆赤,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓歉眷,卻偏偏與公主長得像牺六,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子汗捡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360