1.2.6 linux和高并发-linux基本命令-linux环境变量配置说明

0.问题描述

        Linux 的环境变量可在多个文件中配置,如 /etc/profile,/etc/profile.d/*.sh,~/.bashrc, ~/.bash_profile 等,那么配置在不同的位置,都有哪些区别呢?我之前也没有太在意过这个问题,一般我喜欢配置在/etc/profile下面,也没有出过什么问题。最近在看一些文章的时候,发现大家配置环境的位置各式各样,搜集了一些相关信息,总结一下区别。

1.交互式shell和非交互式shell

        首先我们要弄明白两个概念,bash的运行模式可以分为交互式模式-login shell非交互式模式-non-login shell

  •         交互式模式,就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。
  •        非交互式模式,shell也可以运行在另外一种模式-非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

        例如,我们通过终端,输入用户名、密码,登录系统之后,得到就是一个 login shell。 而当我们执行以下命令 ssh hadoop103 command,在 hadoop103 执行 command 的就是一个 non-login shell。

二者区别

        这两种 shell 的主要区别在于,它们启动时会加载不同的配置文件,login shell 启动时会加载/etc/profile,~/.bash_profile,~/.bashrcnon-login shell 启动时会加载~/.bashrc。而在加载~/.bashrc(实际是~/.bashrc 中加载的/etc/bashrc)或/etc/profile 时,都会执行如下代码片段,

        因此不管是 login shell 还是 non-login shell,启动时都会加载/etc/profile.d/*.sh 中的环境变量,所以呢,如果有非常基础的环境变量可以直接配置在/etc/profile.d/*.sh 中

2.linux环境变量配置方法总结

配置方法说明生效时间生效期限生效范围备注

export PATH

使用export命令直接修改PATH的值立即生效当前终端有效,窗口关闭后无效仅对当前用户有效

配置的环境变量中不要忘了加上原来的配置,即$PATH部分,避免覆盖原来配置

vim ~/.bashrc

通过修改用户目录下的~/.bashrc文件进行配置使用相同的用户打开新的终端时生效,或者手动source ~/.bashrc生效永久有效仅对当前用户有效

如果有后续的环境变量加载文件覆盖了PATH定义,则可能不生效

vim ~/.bash_profile

在文件最后加上新的路径即可使用相同的用户打开新的终端时生效,或者手动source ~/.bash_profile生效永久有效仅对当前用户有效

如果没有~/.bash_profile文件,则可以编辑~/.profile文件或者新建一个

vim /etc/bashrc

修改系统配置,需要管理员权限(如root)或者对该文件的写入权限新开终端生效,或者手动source /etc/bashrc生效永久有效对所有用户有效

vim /etc/profile

需要管理员权限或者对该文件的写入权限新开终端生效,或者手动source /etc/profile生效永久有效对所有用户有效

vim /etc/environment

修改系统环境配置文件,需要管理员权限或者对该文件的写入权限新开终端生效,或者手动source /etc/environment生效永久有效对所有用户有效

参考文章:

Linux环境变量配置全攻略 - 悠悠i - 博客园

该文章后面重点讲解了linux环境变量加载原理,对环境变量做了分类,并且测试了各个环境变量加载的顺序

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值