linux 環境變量系統:
系統級別:/etc/profile、/etc/bashrc/ 、/etc/environment
用戶級別:~/.profile、~/.bashrc、 ~/.bash_profile 或 ~/.bash_login
https://www.cnblogs.com/lovychen/p/10911699.html
LIBRARY_PATH和LD_LIBRARY_PATH的區別:
https://www.cnblogs.com/lovychen/p/10911600.html
簡介:
PATH和LD_LIBRARY_PATH本質都是變量,所謂變量的意思就是由別人賦值產生的,直覺往往會讓我們添加和減少這個變量本身的某些路徑,實際上這是不正確的。正確的做法是我們要去修改賦予這個變量數值的那些配置文件,加一條路徑或者減一條。說到底變量只關乎顯示,不關乎其用於顯示的內容。
首先你可以在命令行輸入:echo $PATH 看看你能看到什么,那是一些 bash 路徑,
如下的意思就是往 PATH 里面新增一個/opt/bin的路徑,如果不加:$PATH的話,就表示直接把PATH賦值為/opt/bin啦,這樣你其他的老路徑就丟失了;
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 執行該腳本;
1、臨時變量的添加:退出登錄后失效;
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
2、PATH: 可執行程序的查找路徑
查看當前環境變量: echo $PATH
設置如下:
方法一: export PATH=$PATH:/XXX 但是登出后就失效
上述方法的PATH 在終端關閉后就會消失。所以還是建議通過編輯/etc/profile來改PATH,也可以改自家目錄下的.bashrc(即:~/.bashrc)。
方法二:修改 ~/.bashrc 或 ~/.bash_profile 或系統級別的 /etc/profile
-
- 1. 在其中添加例如export PATH=/opt/ActivePython-2.7/bin:$PATH
- 2. source .bashrc (Source命令也稱為“點命令”,也就是一個點符號(.)。
- source命令通常用於重新執行剛修改的初始化文件,使之立即生效,而不必注銷並重新登錄)
3、LD_LIBRARY_PATH: 動態庫的查找路徑
查看當前環境變量: echo $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 (Source命令也稱為“點命令”,也就是一個點符號(.)。
- source命令通常用於重新執行剛修改的初始化文件,使之立即生效,而不必注銷並重新登錄)
方法三:這個沒有修改 LD_LIBRARY_PATH 但是效果是一樣的實現動態庫的查找;設置稍微麻煩,好處是比較不受用戶的限制。
-
- 1. /etc/ld.so.conf 下面加一行 /usr/local/mysql/lib
- 2. 保存過后 ldconfig 一下
ldconfig 命令的用途:
1、在默認搜尋目錄(/lib和/usr/lib)以及動態庫配置文件/etc/ld.so.conf內所列的目錄下,搜索出可共享的動態鏈接庫(格式lib*.so*),進而創建出動態裝入程序(ld.so)所需的連接和緩存文件。緩存文件默認為 /etc/ld.so.cache,此文件保存已排好序的動態鏈接庫名字列表
2、為了讓動態鏈接庫為系統所共享,需運行動態鏈接庫的管理命令ldconfig,此執行程序存放在/sbin目錄下。ldconfig通常在系統啟動時運行,而當用戶安裝了一個新的動態鏈接庫,修改了ld.so.conf時,就需要手工運行這個命令。
3、linux下的共享庫機制采用了類似於高速緩存的機制,將庫信息保存在/etc/ld.so.cache里邊。程序連接的時候首先從這個文件里邊查找,然后再到ld.so.conf的路徑里邊去詳細找
ldd 命令的用途:
作用:用來查看程序運行所需的共享庫,常用來解決程序因缺少某個庫文件而不能運行的一些問題。
語法:ldd(選項)(參數)
選項:
-
- --version:打印指令版本號;
- -v:詳細信息模式,打印所有相關信息;
- -u:打印未使用的直接依賴;
- -d:執行重定位和報告任何丟失的對象;
- -r:執行數據對象和函數的重定位,並且報告任何丟失的對象和函數;
- --help:顯示幫助信息。
參數:
文件:指定可執行程序或者文庫。