天天看點

bashrc與profile的差別

bashrc profile 的差別

要搞清bashrc與profile的差別,首先要弄明白什麼是互動式shell和非互動式shell,什麼是login shell 和non-login shell。

互動式模式就是shell等待你的輸入,并且執行你送出的指令。這種模式被稱作互動式是因為shell與使用者進行互動。這種模式也是大多數使用者非常熟悉的:登入、執行一些指令、簽退。當你簽退後,shell也終止了。 shell也可以運作在另外一種模式:非互動式模式。在這種模式下,shell不與你進行互動,而是讀取存放在檔案中的指令,并且執行它們。當它讀到檔案的結尾,shell也就終止了。

bashrc與profile都用于儲存使用者的環境資訊,bashrc用于互動式non-loginshell,而profile用于互動式login shell。系統中存在許多bashrc和profile檔案,下面逐一介紹:

/etc/pro此檔案為系統的每個使用者設定環境資訊,當第一個使用者登入時,該檔案被執行.

并從/etc/profile.d目錄的配置檔案中搜集shell的設定.

/etc/bashrc:為每一個運作bash shell的使用者執行此檔案.當bash shell被打開時,該檔案被讀取。有些linux版本中的/etc目錄下已經沒有了bashrc檔案。

~/. pro每個使用者都可使用該檔案輸入專用于自己使用的shell資訊,當使用者登入時,該

檔案僅僅執行一次!預設情況下,它設定一些環境變量,然後執行使用者的.bashrc檔案.

~/.bashrc:該檔案包含專用于某個使用者的bash shell的bash資訊,當該使用者登入時以及每次打開新的shell時,該檔案被讀取.

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

繼續閱讀