轉自:https://blog.csdn.net/haozhepeng/article/details/100584451
轉載者勘誤
- 原文最后提到的
echo
命令對于環境變量的修改無影響。這是肯定的,echo
命令相當于只是一個打印的函數(比如 Python 中的print
)。這里要修改環境變量應該是export
命令。
文章目錄
- 說明
- 查看、添加、修改PATH環境變量
- 一. 添加環境變量
- 二. 環境變量改名
- 三.環境變量刪除
說明
在講環境變量之前,先介紹一下命令which,它用于查找某個命令的絕對路徑,示例如下:
在上面的示例中,用which查到rm命令的絕對路徑為/usr/bin/rm。
那么問題來了:為什么我們使用命令時,只是直接打出了命令,而沒有使用這些命令的絕對路徑呢?
答:環境變量PATH在起作用。
PATH環境變量存儲的是路徑,當我們在命令行下輸入一個命令如ls時,linux就會PATH表示的路徑中查找
變量寫入到 .bash_profile 中,相當于每次我們打開一個終端都會執行一次環境變量。
可以輸入echo $PATH
查看當前環境變量,其中以分號隔開。
查看、添加、修改PATH環境變量
一. 添加環境變量
(Bash shell中用export,C shell中用setenv)
- 1.直接在終端修改當前生效
export PATH=$PATH:.
(其中export可不要,.是當前目錄的意思,也可以自定義絕對路徑)
配置完后可以通過echo $PATH
查看配置結果。
生效方法:立即生效
有效期限:臨時改變,只能在當前的終端窗口中有效,當前窗口關閉后就會恢復原有的path配置
用戶局限:僅對當前用戶
-
2.對用戶生效
因為寫入到 .bash_profile 中的,而.bash_profile中是調用/.profile,所以可以直接在/.profile中定義變量
在home/用戶/.profile中修改調用文件:vi ~/.bashrc
#在最后一行添上
export PATH=路徑:$PATH
生效方法:(有以下兩種)
1、關閉當前終端窗口,重新打開一個新終端窗口就能生效
2、輸入“source ~/.bashrc”命令,立即生效
使用 echo $PATH 看不到定義變量
有效期限:永久有效
用戶局限:僅對當前用戶
-
3.修改系統級
vi /etc/profile/profile
export PATH=$PATH:路徑
保存文件,重啟即可(有的系統執行./profile即可,不需重啟;有的系統必須重啟)
重啟后可查看PATH環境變量看是否更改:
echo $PATH
我在root用戶下系統不允許我寫入,沒有深究,所以該條pass
- 4.永久生效
-
第一種方法
通過修改profile文件:
vi /etc/profile
在最后一行添加
export PATH=系統路徑(echo $PATH 查看復制在這):新路徑:$PATH
echo $PATH
看得到定義環境
生效方法:系統重啟
有效期限:永久有效
用戶局限:對所有用戶
注:下圖中我忘記在路徑后面加上:$PATH
了,不過好像沒報錯,但還是建議加上!!!!
-
第二種方法
通過修改environment文件:
vi /etc/environment
echo $PATH
看不到定義環境
生效方法:系統重啟
有效期限:永久有效
用戶局限:對所有用戶-
里面可能有:
PATH="系統路徑"
如果有則PATH="系統路徑:新路徑"
-
如果沒有,則需要先
echo $PATH
查看自己當前的變量,然后復制進去,系統路徑:新路徑
- 如果不加系統路徑,重啟后就會只剩下 你定義的變量 其他的全部不在了,然鵝你的系統也沒法正常使用了!!!(下翻有解決方法)
- 真發生了這種事后,解決方法,找一臺正常的機器,
echo $PATH
,然后復制,在問題服務器上臨時定義一下:
PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
然后vi /etc/environment ,把剛才那段環境加進去, 如果vim /etc/profile(第一種方法) 里面也不是全路徑,也需要修改為全路徑(參考第一種方法) 然后 重啟!!!搞定
- 如果不加系統路徑,重啟后就會只剩下 你定義的變量 其他的全部不在了,然鵝你的系統也沒法正常使用了!!!(下翻有解決方法)
-
-
二. 環境變量改名
echo ${path/old_name/new_name} #變更一個目錄名old_name
echo ${path//old_name/new_name} #變更所有目錄名old_name
親測無用,可能是我方法不對
如果要修改,建議用下面方法
單獨用戶:vi ~/.bashrc 在里面修改
全部用戶:vi /etc/profile or vi /etc/environment 在哪配置了在哪修改
三.環境變量刪除
echo ${path#/deletion_name:}
親測 無用,可能是我方法不對
臨時定義不用刪除 重新打開窗口即消失
如果要刪除永久的,建議用下面方法
單獨用戶:vi ~/.bashrc 在里面刪除
全部用戶:vi /etc/profile or vi /etc/environment 在哪配置了在哪刪除