讓作業系統環境更乾淨之Linux的PATH變數
技術標籤:linuxubuntupythonshellcentos
玩Linux一定會和命令列打交道, 比如在Ubuntu中安裝git, 輸入
sudo apt install git -y
回車,執行完成後,就可以在命令列中使用git命令了
git如何在命令列中生效?
我們先檢視git的安裝位置
which git
image-20201214090711670
git被安裝到了/usr/bin
目錄下
安裝到/usr/bin
目錄下的命令, 都可以被Linux自然而然地識別到, 比如我們常用的拷貝命令cp
和 移動命令mv
都儲存在/usr/bin
中
猜測: 在/usr/bin
資料夾的命令,都可以被命令列識別並生效
驗證猜測,在 /usr/bin
目錄下新建檔案hello
, 給hello新增執行許可權chmod 777 hello
,並在其中加入程式碼 echo "hello"
, ,然後在命令列輸入hello, 檢視結果
hello被當做命令順利執行, 猜測成立!
但是...
/usr/bin
是很重要的目錄, 內含大量系統級命令
(如mv, cp), 如果把第三方命令
也安裝到/usr/bin
目錄, 系統級命令
和第三方命令
就很難區分開, 當你想把第三方命令
/usr/bin
, 早晚會亂成一鍋粥.
PATH變數
事實上, 安裝到/usr/bin
目錄下的命令, 是通過PATH
變數,被Linux自然而然地識別到。
PATH
變數可以讓資料夾內的命令,不需要輸入完整路徑,僅輸入命令名,就可以執行, 我們輸入git
與/usr/bin/git
是等效的。
PATH
變數可以配置多個資料夾,使用:
分隔
上圖中 $PATH
中的$
是取出PATH
變數的語法,PATH
變數不包含$
**實際操作:如何配置PATH變數? **
我們使用給PATH變數追加資料夾路徑的方式,配置PATH變數(追加 的方式不會破壞已有的PATH
變數)
如果你使用base作為終端,需要在配置檔案~/.bashrc
尾部追加
# 以 /home/zhaoolee/share 資料夾為例
export PATH=/home/zhaoolee/share:$PATH
如果你使用zsh作為終端,需要在配置檔案~/.zshrc
尾部追加
# 以 /home/zhaoolee/share 資料夾為例
export PATH=/home/zhaoolee/share:$PATH
這裡有一個小技巧:我們把$PATH放到尾部,新資料夾路徑
放到前面,如果新資料夾路徑
內的命令與原有命令存在重名(在新資料夾路徑新增檔案hello,內含echo "hello002"
) ,由於新資料夾路徑
比較靠前,則系統優先使用新資料夾路徑
下的命令。
小結
PATH是非常重要的環境變數,學習PATH的使用原理,可以讓我們思路清晰的解決軟體的安裝配置問題,也能讓作業系統環境更乾淨。