linux下 /etc/profile、~/.bash_profile ~/.profile的執行過程
關於登入linux時,/etc/profile
、~/.bash_profile
、~/.bashrc
等幾個檔案的執行過程。
在登入Linux時要執行檔案的過程如下:
- 在剛登入Linux時,首先啟動
/etc/profile
檔案,然後再啟動使用者目錄下的~/.bash_profile
、~/.bash_login
或~/.profile
檔案中的其中一個,執行的順序為:~/.bash_profile
、~/.bash_login
、~/.profile
。如果~/.bash_profile
檔案存在的話,一般還會執行~/.bashrc
檔案。因為在~/.bash_profile
檔案中一般會有下面的程式碼:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
~/.bashrc
中,一般還會有以下程式碼:
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
所以~/.bashrc
會呼叫 /etc/bashrc
檔案。最後,在退出shell時,還會執行 ~/.bash_logout
檔案。
執行順序為:/etc/profile
-> (~/.bash_profile
| ~/.bash_login
| ~/.profile
) -> ~/.bashrc
-> /etc/bashrc
-> ~/.bash_logout
關於各個檔案的作用域,在網上找到了以下說明:
/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 執行的。通常二者設定大致相同,所以通常前者會呼叫後者。
轉載自 => here
相關文章
- Linux下/etc/profile、~/.bash_profile等幾個檔案的執行過程Linux
- Linux系統環境變數檔案解析(etc/profile ,/etc/bashrc ,~/.bash_profile)Linux變數
- 如何優雅的解決mac安裝zsh不執行.bash_profileMac
- Mac 每次終端重啟都需要重新執行 source ~/bash_profileMac
- Mac-每次都要執行source ~/.bash_profile環境變數才生效Mac變數
- shell 在/etc/profile中設定後不生效
- Oracle SQL Profile固定執行計劃的方法OracleSQL
- Oracle優化案例-coe_xfr_sql_profile固定執行計劃與刪除profile(二十五)Oracle優化SQL
- MAVEN中的profileMaven
- .Oracle固定執行計劃之SQL PROFILE概要檔案OracleSQL
- mac-profileMac
- SpringBoot 教程之 profileSpring Boot
- Oracle OCP(29):PROFILEOracle
- 【BASIS】系統profile
- Oracle利用coe_load_sql_profile指令碼繫結執行計劃OracleSQL指令碼
- 利用dbms_profile定位儲存過程或者package裡低效率語句儲存過程Package
- DevEco Studio:Profile Manager功能dev
- 靈活使用Maven ProfileMaven
- Github 新玩法 -- Profile ReadMeGithub
- 如何解讀Oracle的LOAD PROFILEOracle
- Spring Boot下Profile的四種切換方式思路總結Spring Boot
- A valid provisioning profile for this executable was not found.
- profile builder 3漢化版UI
- SQL Profile(第三篇)SQL
- SQL Profile(第二篇)SQL
- SQL Profile(第四篇)SQL
- ubuntu系統中java -version所顯示的版本與/etc/profile中配置的$JAVA_HOME的關係UbuntuJava
- 【構建】start.sh指令碼中變數被maven profile構建過程替換指令碼變數Maven
- 指令的執行過程
- jsp的執行過程JS
- Oracle優化案例-view merge與coe_load_sql_profile固定執行計劃(十五)Oracle優化ViewSQL
- ORACLE user profile配置/管理/維護Oracle
- MySQL高階知識——Show ProfileMySql
- github 新功能 profile README.mdGithub
- SpringBoot配置Profile多環境支援Spring Boot
- Mysql調優之profile詳解MySql
- MySQL:COUNT(*) profile optimizing階段慢MySql
- SQL Profile(第一篇)SQL
- Spring Boot - Profile不同環境配置Spring Boot