linux下環境變量設置(注意和ubuntu下文件名的區別)

linux下環境變量(注意和ubuntu文件名不同)

/etc/profile:在登錄時,OS爲配置用戶環境使用的第一個文件。此文件中包含OS爲每個用戶設置的環境信息,當任意一個用戶登錄時,該文件被執行,OS加載其中的環境變量,並從 /etc/profile.d 目錄的配置文件中收集 shell 的設置。(這一句什麼意思?)

~/.bash_profile(ubuntu爲 ~/.profile):每個用戶都可以使用該文件輸入專用自己的shell信息,當用戶登錄時,該文件執行 一次。默認情況下,它設置一些環境變量,執行用戶的~/.bashrc 文件。和etc/profile的區別在:etc是對於所有用戶,而~/.bash_profile針對當前用戶。

/etc/bashrc(ubuntu爲 /etc/bash.bashrc):爲每一個運行bash shell的用戶執行此文件,當bash shell被打開時,該文件被讀取。(那和/etc/profile的區別呢?)

~/.bashrc:包含當前用戶下的bash信息,當登錄或者每次重新打開一個shell的時候該文件被讀取。

~/.bash_logout:當每次退出系統(退出 bash shell)時,執行該文件。可把一些清理工作的命令放到這文件中。

 

總結:

  • 放在/etc下的都是配置文件,針對整個系統(所有用戶起作用),而~/下的是針對當前用戶。因爲目錄:~,就是當前用戶的home目錄。
  • 修改profile文件必須要source一下,重啓該文件,因爲這種文件在用戶登錄時候才執行一次;而bashrc文件修改之後重新打開一個shell就可以了。
  • profile文件中設置了一些環境變量,然後再去啓動用戶的~/.bashrc文件。

 

具體怎麼使用:

簡單說在 Ubuntu下,如果你要添加環境變量,想要對所有用戶都有效就在/etc/bash.bashrc;對個人有效則修改:~/.bashrc

 

Ubuntu下如何往bash配置文件中添加環境變量:

#在PATH中找到可執行文件程序的路徑

export PATH=$PATH:$HOME:/bin

#gcc/g++找到頭文件的路徑

#gcc
export C_INCLUDE_PATH=/usr/include:/~/Apollo
#g++
export CPLUS_INCLUDE_PATH=/usr/include:/~Apollo

#找到動態鏈接庫的路徑

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/~/Apollo

#找到靜態鏈接庫的路徑

export LIBRARY_PATH=$LIBRARY_PATH:/Apollo

 

比環境變量優先級更高的:通過命令行添加搜索路徑

#添加頭文件搜索路徑

g++ test.cpp -I /~/Apollo -o test

#添加動態庫搜索路徑

g++ test.cpp -L /~/Apollo -lfoo -o test

#添加靜態庫搜索路徑

g++ test.cpp -L /~/Apollo -static -lfoo -o test

 

遺留問題:

-lfoo選項什麼意思? 現在已經還沒涉及到靜態庫,動態庫鏈接這一塊,下面還是要專門在學一下這個。

參考資料:

linux下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc文件

Linux中C/C++編譯添加頭文件和庫路徑方式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章