Linux中如何修改~/.bashrc或/etc/profile设置环境变量

65次阅读
没有评论

共计 2911 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要介绍了 Linux 中如何修改~/.bashrc 或 /etc/profile 设置环境变量的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇 Linux 中如何修改~/.bashrc 或 /etc/profile 设置环境变量文章都会有所收获,下面我们一起来看看吧。

什么是环境变量

安装 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
export PATH=$PATH:$VCS_HOME/gui/dve/bin
alias dve= dve -full64 
export PATH=$PATH:$VCS_HOME/bin
alias vcs= vcs -full64 
#VERDI
export PATH=$PATH:$VERDI_HOME/bin
alias verdi= verdi -full64 
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 中的变量,他们是 父子 关系。

关于“Linux 中如何修改~/.bashrc 或 /etc/profile 设置环境变量”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Linux 中如何修改~/.bashrc 或 /etc/profile 设置环境变量”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-12发表,共计2911字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)