1. 程式人生 > 其它 >讓作業系統環境更乾淨之Linux的PATH變數

讓作業系統環境更乾淨之Linux的PATH變數

技術標籤:linuxubuntupythonshellcentos

PATH

玩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

image-20201214091412182

猜測: 在/usr/bin 資料夾的命令,都可以被命令列識別並生效

驗證猜測,在 /usr/bin 目錄下新建檔案hello, 給hello新增執行許可權chmod 777 hello ,並在其中加入程式碼 echo "hello", ,然後在命令列輸入hello, 檢視結果

image-20201214092229013

hello被當做命令順利執行, 猜測成立!

但是...

/usr/bin 是很重要的目錄, 內含大量系統級命令(如mv, cp), 如果把第三方命令也安裝到/usr/bin 目錄, 系統級命令第三方命令 就很難區分開, 當你想把第三方命令

批量分享出來時, 就需要先人工進行篩選,再進行分享,很不方便, 而且Linux以管理多使用者著稱,如果所有使用者都把軟體安裝到/usr/bin, 早晚會亂成一鍋粥.

PATH變數

事實上, 安裝到/usr/bin目錄下的命令, 是通過PATH變數,被Linux自然而然地識別到。

PATH變數可以讓資料夾內的命令,不需要輸入完整路徑,僅輸入命令名,就可以執行, 我們輸入git/usr/bin/git 是等效的。

PATH變數可以配置多個資料夾,使用: 分隔

image-20201214093605465

上圖中 $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") ,由於新資料夾路徑比較靠前,則系統優先使用新資料夾路徑下的命令。

image-20201214110937213

小結

PATH是非常重要的環境變數,學習PATH的使用原理,可以讓我們思路清晰的解決軟體的安裝配置問題,也能讓作業系統環境更乾淨。

閱讀原文(支援讀寫評論)

https://www.v2fy.com/p/2020-12-14-path/