前言
環境變量控制你在Linux工作環境中的外觀、行為和感覺。一共有兩種類型的變量:
- 「環境變量」:這些是内置于系統中的程序範圍的變量,控制着系統的外觀和行為。因為是程序範圍的,是以它們被任何子
或程序所繼承。shell
- 「shell變量」:通常以小寫字母列出,并且隻在它們被設定的
中有效。shell
檢視和修改環境變量
使用
env
指令來檢視所有的預設環境變量:

image.png
環境變量總是大寫的,正如我們所看到的
SHELL
,
WINDOWID
以及
COLORTERM
。
為了檢視所有的環境變量,包括
shell
變量、本地變量,以及
shell
函數:比如說任何使用者定義的變量和指令别名,我們可以使用
set
指令。我會把它和
more
一起使用,這樣它看起來更容易管理
set | more
複制
image.png
改變變量值
我們可以通過提供變量名來更改變量,後面跟着相等符号以及新值:
HISTSIZE=200
複制
image.png
我們改變了變量
HISTSIZE
的值,但隻在我們特定的環境中生效。如果我們想将此更改持久化,我們可以使用
export
指令。
export
将會把你目前的環境中的新值,設定到任何新
fork
的子程序中,允許新程序繼承導出的變量。
export HISTSIZE
複制
注意:進行任何更改之前,你也許想要儲存一份目前值的副本
echo $VARIABLE> ~/valueOfVARIABLE.txt
,或者你甚至可能想保留一份所有目前變量值副本
set> ~/valueofALLon02252020.txt
。
你可能需要修改的另一個變量是
PS1
變量。它有一組占位符,用于顯示你想在
shell
提示符中顯示的資訊:
-
目前使用者的名字\u
-
主機名\h
-
目前工作目錄的基本名稱\w
image.png
PATH變量
PATH變量控制
shell
在系統中的何處查找指令。如果
bash shell
在你的PATH變量中的某個目錄中沒有找到該指令,将會傳回
command not found
錯誤。
讓我們來看看哪個目錄存儲着環境變量:
echo $PATH
複制
image.png
這是我的終端來搜尋任意指令的所有目錄。每個目錄通過冒号(:)進行分隔。
假如說我有某些指令存在于
/home/azureuser/gpstools
目錄下,我想将該目錄添加到PATH中。我們可以通過輸入以下内容将一個目錄添加到PATH變量中:
PATH=$PATH:/directory/to/add
複制
這将會在原來的PATH基礎上,加上
/directory/to/add/
目錄。
image.png
請注意:「不要執行」
PATH=/directory/to/add
,那會替換所有原有的目錄并添加新的目錄,你想要的是追加,而不是替換。
建立使用者自定義變量
我們可以通過以下文法來建立屬于我們自己的變量:
MYVARIABLE="VALUE"
複制
如果你需要讓它持久化,别忘了導出它:
export MYVARIABLE
。如果你想删除任何變量,使用
unset
指令:
unset MYVARIABLE
,該指令隻是在删除任何東西之前進行仔細檢查。
參考資料
[1]
https://www.madebygps.com/an-intro-to-managing-user-environment-variables/: https://www.madebygps.com/an-intro-to-managing-user-environment-variables/