Linux学习 | bash的环境配置文件

当我们通过bash进入Linux系统中的时候,我们还没有进行任何的操作,其实此时有许多的命令已经加载好了,这是什么原因呢?
其实是因为系统中有一些配置文件的存在,在bash启动的时候,会自动读取这些配置文件,而这些配置文件又分为系统配置文件用户个人配置文件

1.两种不同的shell

在说明配置文件之前,需要先说清楚login shellnon-login shell,因为在这两个不同的状态下读取的配置文件是不一样的

login shell:取得bash(就是终端)时需要完整的登录流程。

non-login shell:取得bash的方法不需要重复登录的举动。

以上两种不同取得bash的方式,读取的配置文件并不一致

2 login shell

我们大部分时候都是通过账号和密码登录到Linux系统中去的,所以login shell用到的频率也会比较大一些,我们先来说一下login shell会读取的配置文件。

2.1 /etc/profile

/etc/profile:这个文件中存储的是整个系统的设置,它利用用户的标识符(UID)来决定很多重要的变量数据,同时这也是每一个用户登录取得bash时,一定会读取的配置文件,所以当需要为所有用户设置环境变量时,应该修改这个文件。

2.2 ~/.bash_profile

~/.bash_profile~/.bash_login~/.profile:属于用户个人配置,登录bash读取完整体设置/etc/profile,就会读取登录用户的个人配置,按照以下的顺序进行读取,bashlogin shell设置只会按顺序读取下面三个文件中的一个(注意是一个)。

  • ~/.bash_profile
  • ~/.bash_login
  • ~/.profile
    之所以会有这么多的文件,只是为了照顾其他shell转换过来的用户的习惯而已。

下面查看一下~/.bash_profile文件里面的内容

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then   #这三行进行判断,之后读取~/.bashrc
	. ~/.bashrc
fi

# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH

关于这个文件中内容有两点记录一下

  • 文件中用Path这个变量,同时还是用exportPATH变为环境变量,它的作用是以累加的方式,增加用户主文件夹下的~/bin/为额外的执行文件放置目录。这说明,你可以讲你自己创建的执行文件,放置到用户主文件夹下的~/bin/目录,然后直接执行,而不用输入路径来找到执行文件之后才执行。

  • 还有一点就是判断内容,若~/.bashrc文件存在,则还会读取这个文件,所以在这里我们知道了,对于login shell,最后一个读取的配置文件就是~/.bashrc,而这个文件读取方式是一个.,其实就是source命令。

2.3 source:读入环境变量配置文件的命令

bash只有在取得的时候才会读取配置文件,所以我们刚刚修改了配置文件的话,是不会立即生效的,需要等到我们下一次登录才生效。
有一个命令可以让刚刚修改的配置文件立即生效,这就是source
作用:将指定的配置文件读取到本bash的环境中。

source ~/.bashrc    #这两个形式的命令是等价的
. ~/.bashrc

3 non-login shell

3.1 ~/.bashrc

对于non-login shell,仅会读取~/.bashrc这一个配置文件而已

对于两种不同的bash,最后都会读取的配置文件就是~/.bashrc





参考书籍:《鸟哥的私房菜·第3版》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值