linux的shell有兩種方式:
1. login shell: 例如開啟乙個terminal,然後輸入一些命令,退出時shell結束
2. non-login shell: 例如執行乙個shell指令碼,當指令碼執行完成,shell結束
bashrc用於儲存non-login模式環境設定資訊,profile用於儲存login模式環境設定資訊。
在linux檔案系統中存在著很多bashrc和profile的檔案
(1)/etc/profile: 此檔案為系統的每個使用者設定環境資訊,當使用者第一次登入時,該檔案被執行. 並從/etc/profile.d目錄的配置檔案中蒐集shell的設定。
(2)/etc/bashrc: 為每乙個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取。
(3)~/.bash_profile:
每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案。
(4)~/.bashrc:
該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該該檔案被讀取。
(5)~/.bash_logout:當每次退出系統(退出bash shell)時,執行該檔案. 另外,/etc/profile中設定的變數(全域性)的可以作用於任何使用者,而~/.bashrc等中設定的變數(區域性)只能繼承 /etc/profile中的變數,他們是"父子"關係。
(6)~/.bash_profile 是互動式、login 方式進入 bash 執行的~/.bashrc 是互動式 non-login 方式進入 bash 執行的通常二者設定大致相同,所以通常前者會呼叫後者。
執行順序為:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout
linux bashrc和profile的區別
bashrc與profile的區別 要搞清bashrc與profile的區別,首先要弄明白什麼是互動式shell和非互動式shell,什麼是login shell 和non login shell。互動式模式就是shell等待你的輸入,並且執行你提交的命令。這種模式被稱作互動式是因為shell與使用...
Linux bashrc與profile的區別
要搞清bashrc與profile的區別,首先要弄明白什麼是互動式shell和非互動式shell,什麼是login shell 和non login shell。互動式模式就是shell等待你的輸入,並且執行你提交的命令。這種模式被稱作互動式是因為shell與使用者進行互動。這種模式也是大多數使用者...
Linux bashrc與profile的區別
linux要搞清 bashrc 與profile 的區別,首先要弄明白什麼是 互動式shell 和非互動式 shell 什麼是 login shell 和non login shell 互動式模式就是 shell 等待你的輸入,並且執行你提交的命令。這種模式被稱作互動式是因為 shell 與使用者進...