bashrc與profile的區(qū)別

轉(zhuǎn)自:https://www.cnblogs.com/hongzg1982/articles/2101792.html

要搞清bashrc與profile的區(qū)別,首先要弄明白什么是交互式shell和非交互式shell,什么是login shell 和non-login shell。

交互式模式就是shell等待你的輸入,并且執(zhí)行你提交的命令。這種模式被稱作交互式是因為shell與用戶進行交互。這種模式也是大多數(shù)用戶非常熟悉的:登錄、執(zhí)行一些命令、簽退。當(dāng)你簽退后,shell也終止了。 shell也可以運行在另外一種模式:非交互式模式。在這種模式下,shell不與你進行交互,而是讀取存放在文件中的命令,并且執(zhí)行它們。當(dāng)它讀到文件的結(jié)尾,shell也就終止了。

bashrc與profile都用于保存用戶的環(huán)境信息,bashrc用于交互式non-loginshell,而profile用于交互式login shell。系統(tǒng)中存在許多bashrc和profile文件,下面逐一介紹:

/etc/pro此文件為系統(tǒng)的每個用戶設(shè)置環(huán)境信息,當(dāng)?shù)谝粋€用戶登錄時,該文件被執(zhí)行.

并從/etc/profile.d目錄的配置文件中搜集shell的設(shè)置.

/etc/bashrc:為每一個運行bash shell的用戶執(zhí)行此文件.當(dāng)bash shell被打開時,該文件被讀取。有些linux版本中的/etc目錄下已經(jīng)沒有了bashrc文件。

~/. pro每個用戶都可使用該文件輸入專用于自己使用的shell信息,當(dāng)用戶登錄時,該

文件僅僅執(zhí)行一次!默認情況下,它設(shè)置一些環(huán)境變量,然后執(zhí)行用戶的.bashrc文件.

~/.bashrc:該文件包含專用于某個用戶的bash shell的bash信息,當(dāng)該用戶登錄時以及每次打開新的shell時,該文件被讀取.

另外,/etc/profile中設(shè)定的變量(全局)的可以作用于任何用戶,而~/.bashrc等中設(shè)定的變量(局部)只能繼承/etc/profile中的變量,他們是"父子"關(guān)系.



某網(wǎng)友總結(jié)如下:

/etc/profile,/etc/bashrc 是系統(tǒng)全局環(huán)境變量設(shè)定

~/.profile,~/.bashrc用戶家目錄下的私有環(huán)境變量設(shè)定

當(dāng)?shù)侨胂到y(tǒng)時候獲得一個shell進程時,其讀取環(huán)境設(shè)定檔有三步

1首先讀入的是全局環(huán)境變量設(shè)定檔/etc/profile,然后根據(jù)其內(nèi)容讀取額外的設(shè)定的文檔,如

/etc/profile.d和/etc/inputrc

2然后根據(jù)不同使用者帳號,去其家目錄讀取~/.bash_profile,如果這讀取不了就讀取~/.bash_login,這個也讀取不了才會讀取

~/.profile,這三個文檔設(shè)定基本上是一樣的,讀取有優(yōu)先關(guān)系

3然后在根據(jù)用戶帳號讀取~/.bashrc

至于~/.profile與~/.bashrc的不區(qū)別

都具有個性化定制功能

~/.profile可以設(shè)定本用戶專有的路徑,環(huán)境變量,等,它只能登入的時候執(zhí)行一次

~/.bashrc也是某用戶專有設(shè)定文檔,可以設(shè)定路徑,命令別名,每次shell script的執(zhí)行都會使用它一次

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容