Linux 中環境變量設置


  本文主要整理自以下博文:

  .bash_profile和.bashrc的什么區別及啟動過程

  linux環境變量設置方法總結(PATH/LD_LIBRARY_PATH)

.bash_profile 和 .bashrc 區別

相關文件介紹

  /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 運行的。

  通常二者設置大致相同,前者會調用后者。

啟動過程

  在登錄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

環境變量設置

PATH:  可執行程序的查找路徑

  查看當前環境變量:

  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命令通常用於重新執行剛修改的初始化文件,使之立即生效,而不必注銷並重新登錄)

LD_LIBRARY_PATH: 動態庫的查找路徑

  設置:

  方法一: 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM