首頁 > 軟體

Linux環境變數簡述

2020-06-16 17:09:13

通俗的講,環境變數就是告訴電腦 (實際是作業系統)幾個目錄。這幾個目錄下儲存幾個執行檔案,如前面顯示的/usr/bin目錄,大部分的系統命令都在這個目錄下。
 
當我們輸入命令mkdir時,系統就會在環境變數所代表的幾個目錄從前到後去查詢,哪個裡面有mkdir檔案,然後去執行mkdir命令。
 
系統中環境變數的名字是PATH,其內容可通過下面的命令顯示 (根據作業系統不同和設定不同,略有差別,但格式是統一的,:分割的一堆路徑)
$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
所以如果我們想讓自己的命令能被系統找到,就需要把命令所在的目錄加到環境變數裡面,怎麼操作呢?
 
加到環境變數的路徑必須是全路徑,全路徑指以/開頭或以~開頭的路徑。
# 注意第一個PATH不含$, 第二個PATH有$符號
$ export PATH=$PATH:/home/ct
$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ct
所以在以後安裝了新的軟體,或者寫了新的指令碼後,都把軟體的可執行程式和可執行的指令碼所在的目錄,加到環境變數裡面就可以了。
 
但是,在命令列中執行export,對環境變數所做的修改,只對當前終端有效,退出後就無效了。為了使得這一操作長期有效,我們需要把這句話寫入一個檔案中,一個登陸伺服器就會被自動讀取的檔案中。
 
對於普通使用者,在遠端登入終端時,家目錄下的~/.bash_profile (不是~/.bashrc)會自動被讀取,所以我們需要把export語句加入到這個檔案中。
# 這是我的~/.bash_profile中的內容,主要是最後一行。可以連續的加入多個路徑。
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
 
if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi
 
export PATH=$PATH:/home/ct:/home/bin:/home/soft/bowtie2/bin
前面提到,系統查詢命令的順序是從環境變數的第一個目錄到最後一個目錄,在第一次碰到查詢的命令後,就呼叫執行。假如系統存在一個python命令,我們自己又安裝了一個python (假如在/home/ct/anaconda/bin目錄下),如果我們想執行自己的python程式,就需要把/home/ct/anaconda/bin寫在$PATH前面,如下
# 注意$PATH的順序
$ export PATH=/home/ct/anaconda/bin:$PATH
至此,我們可以熟練使用環境變數來簡化命令的輸入過程了,因為如果沒有環境變數,我們就得需要執行/home/ct/anaconda/bin/python來執行python命令了

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-08/146501.htm


IT145.com E-mail:sddin#qq.com