Linux 基礎-檢視和設定環境變數

嵌入式視覺 發表於 2022-11-24
Linux

一,檢視環境變數

在 Linux中,環境變數是一個很重要的概念。環境變數可以由系統、使用者、Shell 以及其他程式來設定。變數就是一個可以被賦值的字串,賦值範圍包括數字、文字、檔名、裝置以及其他型別的資料

值得一提的是,Linux 系統中環境變數的名稱一般都是大寫的,這是一種約定俗成的規範。

1,使用 echo 命令檢視單個環境變數,例如:echo $PATH;使用 env 檢視當前系統定義的所有環境變數;使用 set 檢視所有本地定義的環境變數。檢視 PATH 環境的例項如下:

Linux 基礎-檢視和設定環境變數

使用 unset 刪除指定的環境變數set 也可以設定某個環境變數的值。清除環境變數的值用 unset 命令。如果未指定值,則該變數值將被設為 NULL。示例如下:

$ export TEST="Test..."  # 增加一個環境變數 TEST
$ env|grep TEST  # 此命令有輸入,證明環境變數 TEST 已經存在了
TEST=Test...
unset  TEST  # 刪除環境變數 TEST
$ env|grep TEST  # 此命令沒有輸出,證明環境變數 TEST 已經刪除

2,C 程式呼叫環境變數函式

  • getenv(): 返回一個環境變數。
  • setenv():設定一個環境變數。
  • unsetenv(): 清除一個環境變數。

二,環境變數型別

1,按照變數的生存週期劃分,Linux 變數可分為兩類:

  • 永久的:需要修改配置檔案,變數永久生效。
  • 臨時的:使用 export 命令宣告即可,變數在關閉 shell 時失效。

2,按作用的範圍分,在 Linux 中的變數,可以分為環境變數和本地變數:

  • 環境變數:相當於全域性變數,存在於所有的 Shell 中,具有繼承性;
  • 本地變數:相當於區域性變數只存在當前 Shell 中,本地變數包含環境變數,非環境變數不具有繼承性。

環境變數名稱都是大寫,常用的環境變數意義如下所示。

  • PATH:決定了 shell 將到哪些目錄中尋找命令或程式
  • HOME:當前使用者主目錄
  • HISTSIZE:歷史記錄數
  • LOGNAME:當前使用者的登入名
  • HOSTNAME:指主機的名稱
  • SHELL:當前使用者 Shell 型別
  • LANGUGE:語言相關的環境變數,多語言可以修改此環境變數
  • MAIL:當前使用者的郵件存放目錄
  • PS1:基本提示符,對於 root 使用者是 #,對於普通使用者是 $

三,設定環境變數

Linux新增環境變數有三種方法:

  • /etc/profile 檔案中新增變數【對所有使用者生效(永久的)】
  • 在使用者目錄下的 .bash_profile 檔案中增加變數【對單一使用者生效(永久的)】
  • 直接執行 export 命令定義變數【只對當前 shell(BASH) 有效(臨時的)】

修改 profile 檔案後需執行 source /etc/profile 命令才能生效,否則只能在下次重進此使用者時生效。

四,參考資料

Linux環境變數總結