本文主要整理自如下博文:html
.bash_profile和.bashrc的什麼區別及啓動過程mysql
linux環境變量設置方法總結(PATH/LD_LIBRARY_PATH)linux
/etc/profile: 此文件爲系統的每一個用戶設置環境信息,當用戶第一次登陸時,該文件被執行。並從 /etc/profile.d 目錄的配置文件中搜集shell的設置。sql
/etc/bashrc: 爲每個運行 bash shell 的用戶執行此文件。當 bash shell 被打開時,該文件被讀取。shell
~/.bash_profile: 每一個用戶均可使用該文件輸入專用於本身使用的 shell 信息,當用戶登陸時,該文件僅僅執行一次!默認狀況下,其餘設置的一些環境變量,執行用戶的 .bashrc 文件。緩存
~/.bashrc: 該文件包含專用於登錄用戶的 bash shell 的 bash 信息,當登陸時以及每次打開新的 shell 時,該該文件被讀取。bash
~/.bash_logout: 當每次退出 bash shell 時,執行該文件。ui
另外,/etc/profile中設定的變量(全局)的能夠做用於任何用戶,而~/.bashrc等中設定的變量(局部)只能繼承/etc/profile中的變量,他們是"父子"關係。spa
~/.bash_profile 是交互式、login 方式進入 bash 運行的。操作系統
~/.bashrc 是交互式 non-login 方式進入 bash 運行的。
一般兩者設置大體相同,前者會調用後者。
在登陸Linux時要執行文件的過程以下:
在剛登陸 Linux 時,首先啓動 /etc/profile 文件,而後再啓動用戶目錄下的 ~/.bash_profile、 ~/.bash_login 或 ~/.profile 文件中的其中一個(根據不一樣的 Linux 操做系統的不一樣,命名不同),
執行的順序爲:~/.bash_profile、 ~/.bash_login、 ~/.profile。
若是 ~/.bash_profile 文件存在的話,通常還會執行 ~/.bashrc文件。
由於在 ~/.bash_profile 文件中通常會有下面的代碼:
# Get the aliases and functions if [ -f ~/.bashrc ] ; then . ./bashrc fi
~/.bashrc 中,通常還會有如下代碼:
# Source global definitions if [ -f /etc/bashrc ] ; then . /bashrc fi
因此,~/.bashrc 會調用 /etc/bashrc 文件。最後,在退出 shell 時,還會執行 ~/.bash_logout 文件。
執行順序爲:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout
查看當前環境變量:
echo $PATH
設置:
方法一:export PATH=PATH:/XXX 可是登出後就失效
方法二:修改~/.bashrc或~/.bash_profile或系統級別的/etc/profile
1. 在其中添加例如export PATH=/opt/ActivePython-2.7/bin:$PATH
2. source .bashrc (Source命令也稱爲「點命令」,也就是一個點符號(.)。source命令一般用於從新執行剛修改的初始化文件,使之當即生效,而沒必要註銷並從新登陸)
設置:
方法一: export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/XXX 可是登出後就失效
方法二: 修改 ~/.bashrc 或 ~/.bash_profile 或系統級別的 /etc/profile
1. 在其中添加例如 export PATH=/opt/ActiveP/lib:$LD_LIBRARY_PATH
2. source .bashrc
方法三:這個沒有修改 LD_LIBRARY_PATH 可是效果是同樣的實現動態庫的查找,
1. /etc/ld.so.conf 下面加一行/usr/local/mysql/lib
2. 保存事後 ldconfig 一下(ldconfig 命令的用途,主要是在默認搜尋目錄(/lib 和 /usr/lib)以及動態庫配置文件 /etc/ld.so.conf 內所列的目錄下,搜索出可共享的動態連接庫(格式如前介紹,lib*.so*),進而建立出動態裝入程序(ld.so)所需的鏈接和緩存文件.緩存文件默認爲 /etc/ld.so.cache,此文件保存已排好序的動態連接庫名字列表。)
方法三設置稍微麻煩,好處是比較不受用戶的限制。
unset PATH
unset LD_LIBRARY_PATH