本文時間 2023-05-19
作者:sugerqube漆瓷
本文重理解,!!忽略環境變數載入原理!!
本文目標:理解六大環境變數配置,選擇合適的配置檔案進行配置
配置環境的理由
以shell程式設計為例
現在我們想要執行名為"sugerqube.sh"的指令碼需要執行的命令是
./sugerqube.sh
即在命令列輸入指令碼的地址
注:./
是當前目錄的意思
同理當我們再其他目錄想要執行它的時候需要打的命令就會變化。
作業系統為我們提供管理名為環境變數的東西,環境變數中配置了放置這些命令的資料夾。
這樣我們就能在任意地方直接使用命令完成。
類似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
引入一種解釋方法
接下來我會用魔法咒語的概念來簡述Linux如何尋找環境變數。
現在想要發動名為“watherboom”的魔法。(自定linux命令)
-
你問法杖會不會(檢視臨時環境變數)
會(存在臨時環境變數),咒語生效
換跟不會的法杖(新的bash視窗),咒語失效 -
魔杖不會,你思索自己會不會(檢視使用者環境變數/home/user/.bash_profile)
會(存在環境),咒語生效
其他人不會(切換使用者),咒語無法發動 -
你不會,你問老大會不會(檢視root環境變數/etc/profile)
會(存在環境),咒語生效
老大也不會(未配置檔案),咒語無法發動 -
老大不會,問老天爺(檢視系統環境變數/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。
以上就是個人對六中環境變數配置的理解