避免和conda环境变量冲突---linux下环境变量的设置方法

避免和conda环境变量冲突---linux下环境变量的设置方法,第1张

最近用conda创建了一个新的环境,conda activate进入新环境后,查看perl和python时还是发现:

这就说明conda新环境的环境变量并没有起到作用,于是进入课题组~/.bashrc下看了看,发现有个很奇怪的PATH设定:

好吧,这其实就相当于直接定义了PATH,难怪使用不了conda环境里的变量,于是注销掉这一行,就OK了。

还是记录一下linux下环境变量的设置方法。

1  在当前终端设置临时变量(退出后再进入就没有了)

2   设置当前用户环境变量

即更改用户目录下的 .bash_profile 或 .bashrc 文件,在其末行加入:

保存后执行 source ~/.bashrc (or .profile) 让环境变量立即生效。

3   设置环境变量,对所有用户适用

打开profile或者environment文件:

添加新路径到PATH,则在其末尾行加上:

保存后执行 source /etc/profile (or environment) 让环境变量生效。

比如要把/etc/apache/bin目录添加到PATH中,方法有三:

1.#PATH=$PATH:/etc/apache/bin

使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效

2.#vi /etc/profile

在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格)

这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变

3.#vi ~/.bash_profile

修改PATH行,把/etc/apache/bin添加进去

这种方法是针对用户起作用的

注意:想改变PATH,必须重新登陆才能生效,以下方法可以简化工作:

如果修改了/etc/profile,那么编辑结束后执行source profile(source /etc/profile) 或 执行点命令 ./profile,PATH的值就会立即生效了。

这个方法的原理就是再执行一次/etc/profile shell脚本,注意如果用sh /etc/profile是不行的,因为sh是在子shell进程中执行的,即使PATH改变了也不会反应到当前环境中,但是source是在当前 shell进程中执行的,所以我们能看到PATH的改变。

这样你就学会Linux系统下修改环境变量PATH路径的方法。

补充说明

工作环境设置文件

环境设置文件有两种:系统环境设置文件 和 个人环境设置文件

1.系统中的用户工作环境设置文件:

登录环境设置文件:/etc/profile 

 非登录环境设置文件:/etc/bashrc

2.用户个人设置的环境设置文件:

 登录环境设置文件: $HOME/.bash_profile   //这个是环境变量设置的地方

 非登录环境设置文件:$HOME/.bashrc       //这个是定义别名的地方

登录环境:指用户登录系统后的工作环境

非登录环境:指用户再调用子shell时所使用的用户环境

1、系统位置,/etc目录下的bashrc、profile、environment三个文件

2、用户目录(root或普通用户)下的.bashrc、.bash_profile两个文件,注意这两个文件前面都有点,是隐藏文件。

按变量的周期划为永久变量和临时性变量2种:

永久变量:通过修改配置文件,配置之后变量永久生效。

临时性变量:使用命令如export等命令设置,设置之后马上生效。当关闭shell的时候失效(这种主要用于测试比较多)。

按照影响范围分为用户变量和系统变量2种:

用户变量(局部变量):修改的设置只对某个用户的路径或执行起作用;

系统变量(全局变量):影响范围是整个系统。

export命令显示当前系统定义的所有环境变量,运行返回结果如下:

echo $PATH命令输出当前的PATH环境变量的值,运行返回结果如下:

直接用export命令修改PATH值 (重启终端后配置失效)

export PATH=$PATH:/home/sphc/software/bin

该文件为当前用户配置文件,修改后,作用于当前用户的环境变量。

该文件为当前用户配置文件,修改后,作用于当前用户的环境变量。

/etc/bashrc为系统环境配置文件,需要管理员权限(如root)或者对该文件的写入权限,修改后,作用于所有用户。

/etc/profile为系统全局配置文件,需要管理员权限或者对该文件的写入权限,修改后,作用于系统下所有用户的环境变量。

/etc/environment为系统环境配置文件,需要管理员权限或者对该文件的写入权限,修改后,作用于系统下所有用户的环境变量。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6360017.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-21
下一篇 2023-03-21

发表评论

登录后才能评论

评论列表(0条)

保存