安裝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的方法,我不懂,老實自己手動啟動挺好。
bash就是shell的那個bash,CSDN上很多了,隨便學,rc就是run command運行指令,字面上。
還有個.brashrc這個檔案我不太懂和這個.bashrc的區別,嘗試了一下在.brashrc裡面更改PATH併source以後PATH並沒有改變,這個網上也沒有說這兩者區別。
#如上圖,這個路徑下打開shell以後本來是沒有vcs等路徑的,但是source .bashrc以後再查看$PATH就會顯示有vcs的路徑,這時候就可以直接輸需要輸的VCS指令,但是只限於左邊這個終端窗口,右邊是不行的。
子目錄下的.bashrc檔案不會預載,不會公用,只針對當前使用者的當前終端窗口,每次呼叫相當於還得自己source一下這個路徑下的.bashrc檔案才行。有點類似臨時環境變數。
所以一般要求設定環境變數的話通用的還是更改~/.bashrc或/etc/profile
下面闡述這兩者的差異:
~/是進入目前使用者的主目錄。即/home/
.bashrc 是進入.bashrc資料夾,就是使用者目錄下的名字是.bashrc的目錄。
要搞清楚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中的變量,他們是"父子"關係。
以上是Linux中怎麼修改~/.bashrc或/etc/profile設定環境變數的詳細內容。更多資訊請關注PHP中文網其他相關文章!