linux 環境變量系統:html
系統級別:/etc/profile、/etc/bashrc/ 、/etc/environmentmysql
用戶級別:~/.profile、~/.bashrc、 ~/.bash_profile 或 ~/.bash_loginlinux
http://www.javashuo.com/article/p-mphdnvbs-eh.htmlsql
LIBRARY_PATH和LD_LIBRARY_PATH的區別:shell
http://www.javashuo.com/article/p-wwwyxcro-ea.htmlubuntu
簡介:緩存
PATH和LD_LIBRARY_PATH本質都是變量,所謂變量的意思就是由別人賦值產生的,直覺每每會讓咱們添加和減小這個變量自己的某些路徑,實際上這是不正確的。正確的作法是咱們要去修改賦予這個變量數值的那些配置文件,加一條路徑或者減一條。說到底變量只關乎顯示,不關乎其用於顯示的內容。bash
首先你能夠在命令行輸入:echo $PATH 看看你能看到什麼,那是一些 bash 路徑,函數
以下的意思就是往 PATH 裏面新增一個/opt/bin的路徑,若是不加:$PATH的話,就表示直接把PATH賦值爲/opt/bin啦,這樣你其餘的老路徑就丟失了;spa
export PATH="/opt/bin:$PATH"
意思是:你如今配置的path在你須要的/opt/bin的目錄下,還要再加上原來系統自帶的path環境變量,這樣寫的目的是爲了系統能正常啓動,並且終端命令可以正常運行,若是丟掉就會命令無效等等;
如何插入環境變量:
$PATH:決定了shell將到哪些目錄中去尋找命令或者程序,PATH值是一系列的目錄,當你要運行一個程序時,Linux在這些目錄下進行搜尋編譯連接。
編輯PATH 聲明,其格式爲:
PATH=$PATH:<PATH1>:<PATH2>:<PATH3>:------:<PATHN>
你能夠本身加上指定的路徑,中間用冒號隔開。環境變量更改後,在用戶下次登錄時生效,若是想馬上生效,則可執行下面的語句:$source .bash_profile
添加環境變量:
注意:
若是export 臨時添加環境變量,在腳本中執行的時候,只在該腳本內環境變量有效;
若是是想在該登陸帳戶內有效,則須要,用source 執行該腳本;
一、臨時變量的添加:退出登陸後失效;
export PATH=$PATH:/XXX //新的環境變量 加在原有的PATH 後面;
或者
export PATH=/XXX:$PATH //新的環境變量 加在原有的PATH 前面;
以下所示:注,不能缺失 冒號 :
www@ubuntu:~$ echo $TEST_PATH www@ubuntu:~$ export TEST_PATH=$TEST_PATH:/home/www/1245 www@ubuntu:~$ echo $TEST_PATH :/home/www/1245 www@ubuntu:~$ export TEST_PATH=$TEST_PATH:/home/www/124 www@ubuntu:~$ echo $TEST_PATH :/home/www/1245:/home/www/124 www@ubuntu:~$ export TEST_PATH=/home/www/123:$TEST_PATH www@ubuntu:~$ echo $TEST_PATH /home/www/123::/home/www/1245:/home/www/124 www@ubuntu:~$ export TEST_PATH=/home/www/123TEST_PATH //忘加 $,直接等於 www@ubuntu:~$ echo $TEST_PATH /home/www/123TEST_PATH
二、PATH: 可執行程序的查找路徑
查看當前環境變量: echo $PATH
設置以下:
方法一: export PATH=$PATH:/XXX 可是登出後就失效
上述方法的PATH 在終端關閉後就會消失。因此仍是建議經過編輯/etc/profile來改PATH,也能夠改自家目錄下的.bashrc(即:~/.bashrc)。
方法二:修改 ~/.bashrc 或 ~/.bash_profile 或系統級別的 /etc/profile
三、LD_LIBRARY_PATH: 動態庫的查找路徑
查看當前環境變量: echo $LD_LIBRARY_PATH
設置以下:
方法一: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/XXX 可是登出後就失效
方法二: 修改 ~/.bashrc 或 ~/.bash_profile 或系統級別的 /etc/profile
方法三:這個沒有修改 LD_LIBRARY_PATH 可是效果是同樣的實現動態庫的查找;設置稍微麻煩,好處是比較不受用戶的限制。
ldconfig 命令的用途:
一、在默認搜尋目錄(/lib和/usr/lib)以及動態庫配置文件/etc/ld.so.conf內所列的目錄下,搜索出可共享的動態連接庫(格式lib*.so*),進而建立出動態裝入程序(ld.so)所需的鏈接和緩存文件。緩存文件默認爲 /etc/ld.so.cache,此文件保存已排好序的動態連接庫名字列表
二、爲了讓動態連接庫爲系統所共享,需運行動態連接庫的管理命令ldconfig,此執行程序存放在/sbin目錄下。ldconfig一般在系統啓動時運行,而當用戶安裝了一個新的動態連接庫,修改了ld.so.conf時,就須要手工運行這個命令。
三、linux下的共享庫機制採用了相似於高速緩存的機制,將庫信息保存在/etc/ld.so.cache裏邊。程序鏈接的時候首先從這個文件裏邊查找,而後再到ld.so.conf的路徑裏邊去詳細找
ldd 命令的用途:
做用:用來查看程序運行所需的共享庫,經常使用來解決程序因缺乏某個庫文件而不能運行的一些問題。
語法:ldd(選項)(參數)
選項:
參數:
文件:指定可執行程序或者文庫。