簡介
在虛擬機Linux系統上裝一些軟體經常會碰到需要自己設定環境變數的情況,Windows上裝過Anaconda的小伙伴都知道環境變數是個很重要又很神奇的東西(感覺anaconda就是一個python專用虛擬機),但是相比于Linux而言Windows上設定環境變數已經方便多了,
本博客主要結合博主在CentOS7 Linux系統上安裝VCS(這個后續有空再次次安裝會截圖并出博文)以及VARON的經歷總結Linux上環境變數的設定問題,一文教你認識環境變數,
什么是環境變數
安裝VCS程序中,CSDN上原創或者轉載的博主動不動就會說修改.bashrc設定環境變數,有些懶一點的博主甚至直接說在這里我們需要設定環境變數balabala,當時不知道,直接在安裝包所在的目錄下修改的.bashrc檔案,安裝成功是成功了,在那個目錄下的terminal終端source以后也是可以打開verdi等等VCS套件,但是外部軟體呼叫VCS永遠不成功,最后還是歸結到環境變數問題上來了,
所以這里先要說明環境變數這個東西,換一種說法,你想在任何路徑下呼叫某路徑下的檔案,但是總不能每次都要輸一大堆路徑名,這個時候就要用到環境變數,在相關檔案下(下面細說)設定好PATH,也就是環境變數后,就可以不管在哪兒或者哪個外部應用中直接用名稱呼叫(一般合規的名字是不存在沖突的,當然也有同一個軟體安裝了不同版本的情況會有沖突不過一般會打開默認的那個),
怎么設定環境變數
這里主要講PATH這種最常見的環境變數的設定,還有LD_LIBERARY_PATH,不過這些清楚他的意思之后就都是差不多的了,這個PATH和Windows上的PATH是一個東西,你想直接一句verdi打開而不用輸路徑就在PATH里面加上verdi的路徑,
export SynopsysList=/home/lmh/Synopsys
export VERDI_HOME=$SynopsysList/verdi
export PATH=$PATH:$VERDI_HOME/bin
$有點像指標,除了一些專有名稱外自己可以定義一些通用路徑名比如VCS_HOME,VERDI_HOME這種,主要都是方便在其他路徑里面直接呼叫了,加上$就表示呼叫該路徑了,直接=是重新定義該路徑了,所以PATH定義的時候一定要加上原有的路徑$PATH,路徑之間用冒號連接,
所以再看這個就明白多了,alias也類似define一樣的東西,我在CentOS上是加不加引號單引號雙引號都無所謂,最后lmg_vcs都可以激活license,
export SynopsysList=/home/lmh/Synopsys
export DVE_HOME=$SynopsysList/vcs/gui/dve
export VCS_HOME=$SynopsysList/vcs
export VERDI_HOME=$SynopsysList/verdi
#dve
export PATH=$PATH:$VCS_HOME/gui/dve/bin
alias dve="dve -full64"
#VCS
export PATH=$PATH:$VCS_HOME/bin
alias vcs="vcs -full64"
#VERDI
export PATH=$PATH:$VERDI_HOME/bin
alias verdi="verdi -full64"
#scl
export PATH=$PATH:$SynopsysList/scl/amd64/bin
export VCS_ARCH_OVERRIDE=linux
#LICENCE
export LM_LICENSE_FILE=27000@localhost.localdomain
alias lmg_vcs="lmgrd -c $SynopsysList/vcs/license/Synopsys.dat"
這里順帶說一下,一般這種需要自己手動激活的license是需要掛著的,當然也有懶人辦法直接修改/etc/rc.d/rc.local檔案,在里面加上LD_LIBERARY_PATH的方法,我不懂,老老實實自己手動激活挺好,
.bashrc
bash就是shell的那個bash,CSDN上很多了,隨便學,rc就是run command運行指令,字面意思,
還有個.brashrc這個檔案我不太懂和這個.bashrc的區別,嘗試了一下在.brashrc里面更改PATH并source以后PATH并沒有改變,這個網上也沒有說這兩者區別的,如果有懂得可以留言回復一下,
這里直接一個圖帶你看懂子目錄下的.bashrc檔案:

如上圖,這個路徑下打開shell以后本來是沒有vcs等路徑的,但是source .bashrc以后再查看$PATH就會顯示有vcs的路徑,這時候就可以直接輸需要輸的VCS命令,但是只限于左邊這個終端視窗,右邊是不行的,
子目錄下的.bashrc檔案不會預載,不會公用,只針對當前用戶的當前終端視窗,每次呼叫相當于還得自己source一下這個路徑下的.bashrc檔案才行,有點類似臨時環境變數,
所以一般要求設定環境變數的話通用的還是更改~/.bashrc或者/etc/profile,下面闡述一下這兩者的區別:
~/是進入當前用戶的主目錄,即/home/<user_name>路徑
.bashrc 是進入.bashrc檔案夾,就是用戶目錄下的名字是.bashrc的目錄,
bashrc與profile的區別:
要搞清bashrc與profile的區別,首先要弄明白什么是互動式shell和非互動式shell,什么是login shell 和non-login shell,
互動式模式就是shell等待你的輸入,并且執行你提交的命令,這種模式被稱作互動式是因為shell與用戶進行互動,這種模式也是大多數用戶非常熟悉的:登錄、執行一些命令、簽退,當你簽退后,shell也終止了, shell也可以運行在另外一種模式:非互動式模式,在這種模式下,shell不與你進行互動,而是讀取存放在檔案中的命令,并且執行它們,當它讀到檔案的結尾,shell也就終止了,
bashrc與profile都用于保存用戶的環境資訊,bashrc用于互動式non-login shell,而profile用于互動式login shell,系統中存在許多bashrc和profile檔案,下面主要區分兩種(一般環境變數的設定也只會用到這兩種):
- /etc/profile此檔案為系統的每個用戶設定環境資訊,當第一個用戶登錄時,該檔案被執行,并從/etc/profile.d 這一組態檔中搜集shell的設定,
- ~/.bashrc:該檔案包含專用于某個用戶的bash shell的bash資訊,當該用戶登錄時以及每次打開新的shell時,該檔案被讀取,
另外,/etc/profile中設定的變數(全域)的可以作用于任何用戶,而~/.bashrc等中設定的變數(區域)只能繼承/etc/profile中的變數,他們是"父子"關系,
總結
目前博主主要只用到這兩種設定環境變數的方式 /etc/profile 和 ~/.bashrc,并且已經可以解決大部分軟體的環境變數問題, /etc/profile只在用戶登錄時執行一次,每次修改后需要重新source,修改后打開新視窗最好還是看一下路徑有沒有添加上去;~/.bashrc在用戶每次登錄以及打開終端視窗時都會執行,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/124431.html
標籤:其他
上一篇:基于ECS搭建FTP服務
