bashrc和 bash profile的區別

2021-06-10 07:41:11 字數 1821 閱讀 1716

/etc/profile:

此檔案為系統的每個使用者設定環境資訊,當使用者第一次登入時,該檔案被執行。並從/etc/profile.d目錄的配置檔案中蒐集shell的設定.其中的設定對所有的使用者有用;

/etc/bashrc:

為每乙個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.其中的設定僅對當前使用者有用;

~/.bash_profile:

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

~/.bashrc:

該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該該檔案被讀取.

~/.bash_logout:

當每次退出系統(退出bash shell)時,執行該檔案.

另外,/etc/profile中設定的變數(全域性)的可以作用於任何使用者,而~/.bashrc等中設定的變數(區域性)只能繼承/etc/profile中的變數,他們是"父子"關係.

~/.bash_profile 是互動式、login 方式進入 bash 執行的

~/.bashrc 是互動式 non-login 方式進入 bash 執行的

通常二者設定大致相同,所以通常前者會呼叫後者。

* 每次bash作為login shell啟動時會執行.bash_profile。

主要有(我所知道的)有以下幾種情形:

a) 每次登入到伺服器時預設啟動的shell

b) 「su -l [user]」時進入的shell

c) 「bash --login」進入的shell

* 每次bash作為普通的互動shell(interactive shell)啟動時會執行.bashrc

常見的有:

i) 「su [user]」進入的shell

ii) 直接執行「bash」命令進入的shell。

** 注意

1, 在shell指令碼中「#!/usr/bin/bash」啟動的bash並不執行.bashrc。因為這裡的bash不是

interactive shell。

2, bash作為login shell(login bash)啟動時並不執行.bashrc。雖然該shell也是interactive shell,

但它不是普通的shell。

* 一般.bash_profile裡都會呼叫.bashrc

儘管login bash啟動時不會自動執行.bashrc,慣例上會在.bash_profile中顯式呼叫.bashrc。

,-------------------------------------

| if [ -f ~/.bashrc ]; then

|    . ~/.bashrc

| fi

`-------------------------------------

.bash_profile顯示內容如下:

# .bash_profile

# get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi# user specific environment and startup programs

path=.:$path:$home/bin

bash_env=$home/.bashrc

username="root"

export username bash_env path

bash profile和 bashrc的什麼區別

etc profile 此檔案為系統的每個使用者設定環境資訊,當使用者第一次登入時,該檔案被執行.並從 etc profile.d目錄的配置檔案中蒐集shell的設定.etc bashrc 為每乙個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.bash p...

bashrc和 bash profile的區別

etc profile 此檔案為系統的每個使用者設定環境資訊,當使用者第一次登入時,該檔案被執行。並從 etc profile.d目錄的配置檔案中蒐集shell的設定.其中的設定對所有的使用者有用 etc bashrc 為每乙個執行bash shell的使用者執行此檔案.當bash shell被開啟...

bash profile和 bashrc的區別

bash profile和.bashrc的區別 1 etcprofile 此檔案為系統的每個使用者設定環境資訊,當使用者第一次登入時,該檔案被執行.並從etcprofile.d目錄的配置檔案中蒐集shell的設定。2 etcbashrc 為每乙個執行bash shell的使用者執行此檔案.當bash...