本文和大家分享的主要是linux
環(huán)境變量相關(guān)內(nèi)容,一起來(lái)看看吧,希望對(duì)大家
學(xué)習(xí)linux有所幫助。
通俗的講,環(huán)境變量就是告訴電腦 (
實(shí)際是操作系統(tǒng)
)
幾個(gè)目錄。這幾個(gè)目錄下存儲(chǔ)幾個(gè)執(zhí)行文件,如前面顯示的
/usr/bin
目錄,大部分的系統(tǒng)命令都在這個(gè)目錄下。
當(dāng)我們輸入命令mkdir
時(shí),系統(tǒng)就會(huì)在環(huán)境變量所代表的幾個(gè)目錄從前到后去查找,哪個(gè)里面有
mkdir
文件,然后去執(zhí)行
mkdir
命令。
系統(tǒng)中環(huán)境變量的名字是PATH
,其內(nèi)容可通過(guò)下面的命令顯示
(
根據(jù)操作系統(tǒng)不同和配置不同,略有差別,但格式是統(tǒng)一的,
:
分割的一堆路徑
)
$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
所以如果我們想讓自己的命令能被系統(tǒng)找到,就需要把命令所在的目錄加到環(huán)境變量里面,怎么操作呢?
加到環(huán)境變量的路徑必須是全路徑,全路徑指以/
開頭或以
~
開頭的路徑。
#
注意第一個(gè)
PATH
不含
$,
第二個(gè)
PATH
有
$
符號(hào)
$ export PATH=$PATH:/home/ct
$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ct
所以在以后安裝了新的軟件,或者寫了新的腳本后,都把軟件的可執(zhí)行程序和可執(zhí)行的腳本所在的目錄,加到環(huán)境變量里面就可以了。
但是,在命令行中執(zhí)行export
,對(duì)環(huán)境變量所做的修改,只對(duì)當(dāng)前終端有效,退出后就無(wú)效了。為了使得這一操作長(zhǎng)期有效,我們需要把這句話寫入一個(gè)文件中,一個(gè)登陸服務(wù)器就會(huì)被自動(dòng)讀取的文件中。
對(duì)于普通用戶,在遠(yuǎn)程登錄終端時(shí),家目錄下的~/.bash_profile (
不是
~/.bashrc)
會(huì)自動(dòng)被讀取,所以我們需要把
export
語(yǔ)句加入到這個(gè)文件中。
#
這是我的
~/.bash_profile
中的內(nèi)容,主要是最后一行??梢赃B續(xù)的加入多個(gè)路徑。
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
前面提到,系統(tǒng)查找命令的順序是從環(huán)境變量的第一個(gè)目錄到最后一個(gè)目錄,在第一次碰到查詢的命令后,就調(diào)用執(zhí)行。假如系統(tǒng)存在一個(gè)python
命令,我們自己又安裝了一個(gè)
python (
假如在
/home/ct/anaconda/bin
目錄下
)
,如果我們想執(zhí)行自己的
python
程序,就需要把
/home/ct/anaconda/bin
寫在
$PATH
前面,如下
#
注意
$PATH
的順序
$ export PATH=/home/ct/anaconda/bin:$PATH
至此,我們可以熟練使用環(huán)境變量來(lái)簡(jiǎn)化命令的輸入過(guò)程了,因?yàn)槿绻麤](méi)有環(huán)境變量,我們就得需要運(yùn)行/home/ct/anaconda/bin/python
來(lái)運(yùn)行
python
命令了
來(lái)源:Linux
公社