溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux中怎么修改~/.bashrc或/etc/profile設(shè)置環(huán)境變量

發(fā)布時間:2023-05-05 09:50:30 來源:億速云 閱讀:112 作者:iii 欄目:建站服務(wù)器

本篇內(nèi)容主要講解“Linux中怎么修改~/.bashrc或/etc/profile設(shè)置環(huán)境變量”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Linux中怎么修改~/.bashrc或/etc/profile設(shè)置環(huán)境變量”吧!

    什么是環(huán)境變量

    安裝VCS過程中,CSDN上原創(chuàng)或者轉(zhuǎn)載的博主動不動就會說修改.bashrc設(shè)置環(huán)境變量,有些懶一點的博主甚至直接說在這里我們需要設(shè)置環(huán)境變量balabala,當(dāng)時不知道,直接在安裝包所在的目錄下修改的.bashrc文件,安裝成功是成功了,在那個目錄下的terminal終端source以后也是可以打開verdi等等VCS套件,但是外部軟件調(diào)用VCS永遠不成功。最后還是歸結(jié)到環(huán)境變量問題上來了。

    所以這里先要說明環(huán)境變量這個東西,換一種說法,你想在任何路徑下調(diào)用某路徑下的文件,但是總不能每次都要輸一大堆路徑名,這個時候就要用到環(huán)境變量,在相關(guān)文件下(下面細說)設(shè)置好PATH,也就是環(huán)境變量后,就可以不管在哪兒或者哪個外部應(yīng)用中直接用名稱調(diào)用(一般合規(guī)的名字是不存在沖突的,當(dāng)然也有同一個軟件安裝了不同版本的情況會有沖突不過一般會打開默認的那個)。

    怎么設(shè)置環(huán)境變量

    這里主要講PATH這種最常見的環(huán)境變量的設(shè)置,還有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這種,主要都是方便在其他路徑里面直接調(diào)用了,加上$就表示調(diào)用該路徑了,直接=是重新定義該路徑了,所以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是需要掛著的,當(dāng)然也有懶人辦法直接修改/etc/rc.d/rc.local文件,在里面加上LD_LIBERARY_PATH的方法,我不懂,老老實實自己手動激活挺好。

    .bashrc

    bash就是shell的那個bash,CSDN上很多了,隨便學(xué),rc就是run command運行指令,字面意思。

    還有個.brashrc這個文件我不太懂和這個.bashrc的區(qū)別,嘗試了一下在.brashrc里面更改PATH并source以后PATH并沒有改變,這個網(wǎng)上也沒有說這兩者區(qū)別。

    這里直接一個圖帶你看懂子目錄下的.bashrc文件

    Linux中怎么修改~/.bashrc或/etc/profile設(shè)置環(huán)境變量

    如上圖,這個路徑下打開shell以后本來是沒有vcs等路徑的,但是source .bashrc以后再查看$PATH就會顯示有vcs的路徑,這時候就可以直接輸需要輸?shù)腣CS命令,但是只限于左邊這個終端窗口,右邊是不行的。

    子目錄下的.bashrc文件不會預(yù)載,不會公用,只針對當(dāng)前用戶的當(dāng)前終端窗口,每次調(diào)用相當(dāng)于還得自己source一下這個路徑下的.bashrc文件才行。有點類似臨時環(huán)境變量。

    所以一般要求設(shè)置環(huán)境變量的話通用的還是更改~/.bashrc或者/etc/profile

    下面闡述一下這兩者的區(qū)別:

    • ~/是進入當(dāng)前用戶的主目錄。即/home/<user_name>路徑

    • .bashrc 是進入.bashrc文件夾,就是用戶目錄下的名字是.bashrc的目錄。

    bashrc與profile的區(qū)別

    要搞清bashrc與profile的區(qū)別,首先要弄明白什么是交互式shell和非交互式shell,什么是login shell 和non-login shell。

    交互式模式就是shell等待你的輸入,并且執(zhí)行你提交的命令。這種模式被稱作交互式是因為shell與用戶進行交互。

    • 這種模式也是大多數(shù)用戶非常熟悉的:登錄、執(zhí)行一些命令、簽退。當(dāng)你簽退后,shell也終止了。

    • shell也可以運行在另外一種模式:非交互式模式。在這種模式下,shell不與你進行交互,而是讀取存放在文件中的命令,并且執(zhí)行它們。當(dāng)它讀到文件的結(jié)尾,shell也就終止了。

    bashrc與profile都用于保存用戶的環(huán)境信息,bashrc用于交互式non-login shell,而profile用于交互式login shell。

    系統(tǒng)中存在許多bashrc和profile文件,下面主要區(qū)分兩種(一般環(huán)境變量的設(shè)定也只會用到這兩種):

    • /etc/profile此文件為系統(tǒng)的每個用戶設(shè)置環(huán)境信息,當(dāng)?shù)谝粋€用戶登錄時,該文件被執(zhí)行。并從/etc/profile.d 這一配置文件中搜集shell的設(shè)置。

    • ~/.bashrc:該文件包含專用于某個用戶的bash shell的bash信息,當(dāng)該用戶登錄時以及每次打開新的shell時,該文件被讀取。

    另外,/etc/profile中設(shè)定的變量(全局)的可以作用于任何用戶,而~/.bashrc等中設(shè)定的變量(局部)只能繼承/etc/profile中的變量,他們是"父子"關(guān)系。

    到此,相信大家對“Linux中怎么修改~/.bashrc或/etc/profile設(shè)置環(huán)境變量”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

    向AI問一下細節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI