Linux下profile和bashrc的區別

2021-07-26 05:49:43 字數 1637 閱讀 2781

在做環境變數配置時涉及到了這兩個檔案,故在網上找了一下它們之間的區別,記錄下來方便以後查閱:

bashrc與profile的區別

從上面的英文描述可以知道,bashrc和profile的差異在於:

1. bashrc是在系統啟動後就會自動執行。

2. profile是在使用者登入後才會執行。

3. 進行設定後,可運用source bashrc命令更新bashrc,也可運用source profile命令更新profile。

ps:通常我們修改bashrc,有些linux的發行版本不一定有profile這個檔案

4. /etc/profile中設定的變數(全域性)的可以作用於任何使用者,而~/.bashrc等中設定的變數(區域性)只能繼承/etc/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中的變數,他們是"父子"關係.

補充介紹

另外,需要補充說明介紹bashrc相關的幾個檔案:

~/.bash_profile: 每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案。

~/.bash_logout: 當每次退出系統(退出bash shell)時,執行該檔案。

~/.bash_profile 是互動式、login方式進入bash執行的,~/.bashrc是互動式non-login方式進入bash執行的,通常二者設定大致相同,所以通常前者會呼叫後者。

Linux下profile和bashrc四種的區別

etc profile etc bashrc bash profile bashrc很容易混淆,他們之間有什麼區別?它們的作用到底是什麼?1 etc profile 用來設定系統環境引數,比如 path.這裡面的環境變數是對系統內所有使用者生效的。2 etc bashrc 這個檔案設定系統bash ...

Linux下profile和bashrc四種的區別

etc profile etc bashrc bash profile bashrc很容易混淆,他們之間有什麼區別?它們的作用到底是什麼?etc profile 用來設定系統環境引數,比如 path.這裡面的環境變數是對系統內所有使用者生效的。etc bashrc 這個檔案設定系統bash shel...

Linux下profile和bashrc區別

用來設定系統環境引數,比如 path.這裡面的環境變數是對系統內所有使用者生效的。這個檔案設定系統bash shell相關的東西,對系統內所有使用者生效。只要使用者執行bash命令,那麼這裡面的東西就在起作用。用來設定一些環境變數,功能和 etc profile 類似,但是這個是針對使用者來設定的,...