1. 程式人生 > >Linux將命令新增到PATH中及PA LD_LIBRARY_PATH用於指定查詢共享庫(動態連結庫)時除了預設路徑之外的其他路徑

Linux將命令新增到PATH中及PA LD_LIBRARY_PATH用於指定查詢共享庫(動態連結庫)時除了預設路徑之外的其他路徑

Linux將命令新增到PATH中部落格分類:
linux
LinuxApacheBash

簡單說PATH就是一組路徑的字串變數,當你輸入的命令不帶任何路徑時,LINUX會在PATH記錄的路徑中查詢該命令。有的話則執行,不存在則提示命令找不到。比如在根目錄/下可以輸入命令ls,在/usr目錄下也可以輸入ls,但其實ls命令根本不在這個兩個目錄下,當你輸入ls命令時LINUX會去/bin,/usr/bin,/sbin等目錄尋找該命令。而PATH就是定義/bin:/sbin:/usr/bin等這些路勁的變數,其中冒號為目錄間的分割符。

如何自定義路徑: 
假設你新編譯安裝了一個apache在/usr/local/apache下,你希望每次啟動的時候不用敲一大串字元(# /usr/local/apache/bin/apachectl start)才能使用它,而是直接像ls一樣在任何地方都直接輸入類似這樣(# apachectl start)的簡短命令。這時,你就需要修改環境變數PATH了,準確的說就是給PATH增加一個值/usr/local/apache/bin。將/usr/local/apache/bin新增到PATH中有三種方法:

1、直接在命令列中設定PATH
# PATH=$PATH:/usr/local/apache/bin
使用這種方法,只對當前會話有效,也就是說每當登出或登出系統以後,PATH設定就會失效。

2、在profile中設定PATH
# vi /etc/profile
找到export行,在下面新增加一行,內容為:export PATH=$PATH:/usr/local/apache/bin。
注:= 等號兩邊不能有任何空格。這種方法最好,除非手動強制修改PATH的值,否則將不會被改變。
編輯/etc/profile後PATH的修改不會立馬生效,如果需要立即生效的話,可以執行# source profile命令。

3、在當前使用者的profile中設定PATH
# vi ~/.bash_profile
修改PATH行,把/usr/local/apache/bin新增進去,如:PATH=$PATH:$HOME/bin:/usr/local/apache/bin。
# source ~/.bash_profile
讓這次的修改生效。
注:這種方法只對當前使用者起作用的,其他使用者該修改無效。

去除自定義路徑: 

當你發現新增路徑/usr/local/apache/bin沒用或不需要時,你可以在以前修改的/etc/profile或~/.bash_profile檔案中刪除你曾今自定義的路徑。

LD_LIBRARY_PATH是Linux環境變數名,該環境變數主要用於指定查詢共享庫(動態連結庫)時除了預設路徑之外的其他路徑。

移植程式時的經常碰到需要使用一些特定的動態庫,而這些編譯好的動態庫放在我們自己建立的目錄裡,這時可以將這些目錄設定到LD_LIBRARY_PATH中。

當執行函式動態連結.so時,如果此檔案不在預設目錄下‘/lib’ and ‘/usr/lib’.那麼就需要指定環境變數LD_LIBRARY_PATH
假如現在需要在已有的環境變數上新增新的路徑名,則採用如下方式:LD_LIBRARY_PATH=NEWDIRS:$LD_LIBRARY_PATH.(newdirs是新的路徑串)(注:GNU系統可以自動新增在 /etc/ld.so.conf檔案中來實現環境變數的設定)微笑

設定方法

編輯在linux下可以用export命令來設定這個值,比如在linux終端下輸入:export LD_LIBRARY_PATH=/opt/au1200_rm/build_tools/bin: $LD_LIBRARY_PATH:然後再輸入:export即會顯示是否設定正確export方式在重啟後失效,所以也可以用 vim /etc/bashrc ,修改其中的LD_LIBRARY_PATH變數。例如:LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/au1200_rm/build_tools/bin。