> 本文時間 2023-05-19 > 作者:sugerqube漆瓷 本文重理解,!!忽略環境變數載入原理!! **本文目標**:理解六大環境變數配置,選擇合適的配置文件進行配置 # 配置環境的理由 以**shell**編程為例 ![image](https://img2023.cnblogs.co ...
本文時間 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。
以上就是個人對六中環境變數配置的理解