【Linux】詳解六種配置Linux環境變數的方法(以centos為例)

漆瓷發表於2023-05-19

本文時間 2023-05-19
作者:sugerqube漆瓷

本文重理解,!!忽略環境變數載入原理!!

本文目標:理解六大環境變數配置,選擇合適的配置檔案進行配置

配置環境的理由

shell程式設計為例

image

現在我們想要執行名為"sugerqube.sh"的指令碼需要執行的命令是
./sugerqube.sh 即在命令列輸入指令碼的地址
注:./是當前目錄的意思

image

同理當我們再其他目錄想要執行它的時候需要打的命令就會變化

作業系統為我們提供管理名為環境變數的東西,環境變數中配置了放置這些命令的資料夾。

這樣我們就能在任意地方直接使用命令完成。

類似vi,mv等常見命令其實就是
/usr/local/sbin:
/usr/local/bin:
/sbin:/bin:
/usr/sbin:
/usr/bin
等下的命令檔案,所以當這些常見命令用不了的時候,大機率說明環境便量配置出問題了。

可以建立臨時變數:來進行搶救,後文還會再提及。
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

image

引入一種解釋方法

接下來我會用魔法咒語的概念來簡述Linux如何尋找環境變數。

現在想要發動名為“watherboom”的魔法。(自定linux命令)
image

  1. 你問法杖會不會(檢視臨時環境變數
    會(存在臨時環境變數),咒語生效
    換跟不會的法杖(新的bash視窗),咒語失效

  2. 魔杖不會,你思索自己會不會(檢視使用者環境變數/home/user/.bash_profile
    會(存在環境),咒語生效
    其他人不會(切換使用者),咒語無法發動

  3. 你不會,你問老大會不會(檢視root環境變數/etc/profile
    會(存在環境),咒語生效
    老大也不會(未配置檔案),咒語無法發動

  4. 老大不會,問老天爺(檢視系統環境變數/etc/environment
    會(存在環境),咒語生效
    老天爺也不會(未配置檔案),咒語無法發動

因為是先問法杖,再層層向上,所以如果法杖直接回答了,無論他是否正確,都會採取法杖的方案。

以上是四個環境變數會存在的地址,那還有兩個在哪?


作為魔法師,有些事不能總親力親為,你需要小精靈(bash指令碼)幫你做事。

所以還存在你的小精靈指南(~/.bashrc)
你還可以問老大的小精靈所以有(/etc/bashrc)
這些書都是“你” 寫的,所上面的魔法(命令),你也會;當你轉職(非bash)你就只能拜託小精靈幫你。

注:這一段簡單說明了profile和bashrc的區別,前者是全範圍涵蓋的,後者是針對bash的。

平時我們用的都是bash命令,所以看起來好像是bashrc>profile,實際上是他們有不同的關注點
平時我們用的都是non-login進入的bash執行現成指令碼,所以看起來bashrc更有用,而profile僅登入能操作

配置環境變數的方法

方法1:配置臨時環境變數

直接在命令列輸入以下命令

export PATH=/home/sugerqube/bin:$PATH

/home/bin為要新增到環境變數的資料夾。
:$PATH不可省略,他的存在是將你新的環境變數地址存到原先PATH的前面。
shell基礎的會知道這裡的$是對PATH地址的一種引用。

同理也可以放到前面:export PATH=$PATH:/home/sugerqube/bin

注意事項:

  • 生效時間:立即生效
  • 生效期限:當前終端有效,視窗關閉後無效
  • 生效範圍:僅對當前使用者有效
  • 配置的環境變數中不要忘了加上原來的配置,即$PATH部分,避免覆蓋原來配置

包括後文的注意事項都引用自下文,ps:原文<方法一>存在錯誤。
https://blog.csdn.net/xishining/article/details/119283522




方法2:配置使用者bash環境變數(單使用者最常用)

直接在命令列輸入以下命令

cd
vi .bash

最後一行輸入
export PATH=$PATH:/home/sugerqube/bin

注意事項:

  • 生效時間:使用相同的使用者開啟新的終端時生效,或者手動source ~/.bashrc生效
  • 生效期限:永久有效
  • 生效範圍:僅對當前使用者有效
  • 如果有後續的環境變數載入檔案覆蓋了PATH定義,則可能不生效



方法3:配置使用者環境變數

直接在命令列輸入以下命令

cd
vi .bash_profile

最後一行輸入
export PATH=$PATH:/home/sugerqube/bin
注意事項:同方法2,但是使用者不登入也能生效(non-login 方式進入 bash 執行的命令)




方法4:配置“系統bash”環境變數(多使用者最常用)

直接在命令列輸入以下命令,需要許可權 vi退出時wq!強制寫入

sudo vi /etc/bashrc

最後一行輸入
export PATH=$PATH:/home/sugerqube/bin

注意事項:

  • 生效時間:新開終端生效,或者手動source /etc/bashrc生效
  • 生效期限:永久有效
  • 生效範圍:對所有使用者有效



方法5:配置“系統”環境變數

直接在命令列輸入以下命令,需要許可權 vi退出時wq!強制寫入

sudo vi /etc/profile

最後一行輸入
export PATH=$PATH:/home/sugerqube/bin
注意事項:同方法4,但是使用者不登入也能生效(non-login 方式進入 bash 執行的命令)




方法6:配置環境變數

直接在命令列輸入以下命令,需要許可權 vi退出時wq!強制寫入

sudo vi /etc/environment

最後一行輸入
export PATH=$PATH:/home/sugerqube/bin

注意事項:通方法5。




以上就是個人對六中環境變數配置的理解

相關文章