Linux系統常用環境變量說明


Linux系統常用環境變量說明
20140608 Chenxin
env export 和 set 的分別(環境變量的查看)
新機器

env |wc -l 顯示的是系統環境變量,同export(數量較少)

29

export |wc -l

29 經過多台機器檢驗,export命令看到的變量數目和env命令看到的一樣

set |wc -l 顯示的是所有本地環境變量(數量很多)

63

hello=123 這里增加一個變量,看效果

env |wc -l

29

export |wc -l

29

set |wc -l

64 這里增加了1個hello的變量

生產機器:

env|wc -l

35

export |wc -l

35

set|wc -l

112

  1. 顯示環境變量HOME
  2. 設置一個新的環境變量hello. export HELLO="Hello!"
  3. 使用env命令顯示所有的環境變量(同export命令,變量數量比set看到的少)
  4. 使用set命令顯示所有本地定義的Shell變量
  5. 使用unset命令來清除環境變量
    set可以設置某個環境變量的值。
    清除環境變量的值用unset命令。
    如果未指定值,則該變量值將被設為NULL。
    示例如下:
    $ export TEST="Test..." #增加一個環境變量TEST
    $ env|grep TEST #此命令有輸入,證明環境變量TEST已經存在了
    $ unset $TEST #刪除環境變量TEST
    $ env|grep TEST #此命令沒有輸出,證明環境變量TEST已經存在了
  6. 使用readonly命令設置只讀變量
    如果使用了readonly命令的話,變量就不可以被修改或清除了。示例如下:
    $ export TEST="Test..." #增加一個環境變量TEST
    $ readonly TEST #將環境變量TEST設為只讀
    $ unset TEST #會發現此變量不能被刪除
    -bash: unset: TEST: cannot unset: readonly variable
    $ TEST="New" #會發現此也變量不能被修改
    -bash: TEST: readonly variable

環境變量的設置位於/etc/profile文件
如果需要增加新的環境變量可以添加下屬行
export path=$path:/path1:/path2:/pahtN

Linux的變量種類
按變量的生存周期來划分,Linux變量可分為兩類:
1.1 永久的:需要修改配置文件,變量永久生效。
1.2 臨時的:使用export命令聲明即可,變量在關閉shell時失效。

設置變量的三種方法
2.1 在/etc/profile文件中添加變量
注:修改文件后要想馬上生效還要運行# source /etc/profile不然只能在下次重進此用戶時生效。
2.2 在用戶目錄下的.bash_profile文件中增加變量
注:修改文件后要想馬上生效還要運行$ source /home/guok/.bash_profile不然只能在下次重進此用戶時生效。
2.3 直接運行export命令定義變量(只對當前shell(BASH)有效(臨時的))
在shell的命令行下直接使用[export 變量名=變量值] 定義變量,該變量只在當前的shell(BASH)或其子shell(BASH)下是有效的.

常用的環境變量
PATH 決定了shell將到哪些目錄中尋找命令或程序.系統就從這些目錄里尋找可執行文件.具體見附件.
ROOTPATH 這個變量的功能和PATH相同,但它只羅列出超級用戶(root)鍵入命令時所需檢查的目錄。
LDPATH(LD_LIBRARY_PATH) 這個變量包含了一系列用冒號隔開的目錄,動態鏈接器將在這些目錄里查找庫文件.具體見附件.
HOME 當前用戶主目錄
HISTSIZE 歷史記錄數
LOGNAME 當前用戶的登錄名
HOSTNAME 指主機的名稱
SHELL 當前用戶Shell類型
LANGUGE 語言相關的環境變量,多語言可以修改此環境變量.
MAIL 當前用戶的郵件存放目錄.
PS1 基本提示符,對於root用戶是#,對於普通用戶是$.
MANPATH 這個變量包含了一系列用冒號隔開的目錄,命令man會在這些目錄里搜索man頁面.
INFODIR 這個變量包含了一系列用冒號隔開的目錄,命令info將在這些目錄里搜索info頁面.
PAGER 這個變量包含了瀏覽文件內容的程序的路徑(例如less或者more).
EDITOR 這個變量包含了修改文件內容的程序(文件編輯器)的路徑.比如nano或者vi.
KDEDIRS 這個變量包含了一系列用冒號隔開的目錄,里面放的是KDE相關的資料.
CONFIG_PROTECT 這個變量包含了一系列用空格隔開的目錄,它們在更新的時候會被Portage保護起來.
CONFIG_PROTECT_MASK 這個變量包含了一系列用空格隔開的目錄,它們在更新的時候不會被Portage保護起來
附件:
1.路徑變量PATH
當用戶在某工作目錄執行一個命令或者可執行程序時,若當前路徑下不存在該程序,則系統將從PATH路徑列表中查找指定的應用程序.
等號后邊的表達式中,多個路徑以英文冒號分隔。最后一定要加入$PATH。

2.添加庫默認加載路徑LD_LIBRARY_PATH
export LD_LIBRARY_PATH={YourPath}:$LD_LIBRARY_PATH
加入此環境變量的目的是允許系統從用戶自定義的目錄中加載庫.
這樣如果你有一個軟件,需要依賴很多庫,但又不想破壞系統原有的純凈,則可將所有庫放入一個文件夾內,然后將該文件夾添加至LD_LIBRARY_PATH環境變量。

3.添加gcc默認的include目錄C_INCLUDE_PATH
export C_INCLUDE_PATH={YourPath}:$C_INCLUDE_PATH
如果你使用gcc來編譯你的C程序,你又安裝了某個第三方的C庫。
你可以將庫中的頭文件放到一個目錄中,然后將該目錄作為gcc默認的查找頭文件目錄。
這樣你在編譯的時候就可以少加入一個“-I”參數,編譯器會自動從原有目錄和你設置的目錄中查找引用的頭文件。

4.添加g++默認的include目錄CPLUS_INCLUDE_PATH
export CPLUS_INCLUDE_PATH={YourPath}:$CPLUS_INCLUDE_PATH
意義同上面的那一條相同,只不過是針對g++編譯器的。


免責聲明!

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



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