linux配置文件的区别整理

本文详细介绍了 Linux 系统中 Bash shell 的启动过程,包括 .bash_profile 和 .bashrc 文件的区别及其调用时机。阐述了 login shell 和 non-login shell 的概念,并列举了不同情况下 shell 启动时读取的配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一).bash_profile和.bashrc何时调用

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:junbin lin
链接:http://www.zhihu.com/question/22990045/answer/23282396
来源:知乎

Linux系统默认使用的shell为bash,在shell启动的时候会读取根据情况读取.bash_profile和.bashrc文件。
准确的说,当shell是交互式登录shell时,读取.bash_profile文件,如在系统启动、远程登录或使用su -切换用户时;当shell是交互式登录和非登录shell时都会读取.bashrc文件,如:在图形界面中打开新终端或使用su切换用户时,均属于非登录shell的情况。
简单的说,.bash_profile只在会话开始时被读取一次,而.bashrc则每次打开新的终端时,都会被读取。

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:杨永峰
链接:http://www.zhihu.com/question/22990045/answer/25253297
来源:知乎

两个文件都是 shell 启动时要读取的 startup files。在不同的状态下,读取的文件及顺序不一样,一般按照如下规则进行:


interactive login shell 的形式调用,Files read

  • /etc/profile
  • ~/.bash_profile, ~/.bash_login or ~/.profile (first existing readable file is read)
  • ~/.bash_logout (upon logout)

interactive non-login shell 的形式调用,Files read:

  • ~/.bashrc //该文件通常指向 ~/.bash_profile

non-interactively, 脚本文件通常用这种方式。Files read:

  • defined by BASH_ENV

Invoked remotely,Files read:

  • ~/.bashrc
二)关于login shell 和 no-login shell的解释:
http://www.2cto.com/os/201306/223762.html
解析login shell和no-login shell
 
login shell:取得bash 时需要完整的登入流程,就称为login shell。举例来说,同tty1~tty6登入时, 需要输入用户名和密码,此时取得的bash就称为login shell
 
non-login shell:取得bash介面的方法不需要重复登入的动作。
 
举两个例子
(1)以X window登入linux后,再以X 的图形化介面启动终端机,此时那个终端机并不需要再次的输入用户名和密码,那个bash的环境就称为non-login shell
(2)在原本的bash环境中再次下达bash这个指令,同样没有要求输入用户名和密码,那个第二个bash也是non-login shell
 
login shell 和 no-login shell 的执行顺序:
Login shells:
/etc/profile
    /etc/profile.d
~/.bash_profile
    ~/.bashrc
          /etc/bashrc
 
Non-login shells:
~/.bashrc
    /etc/bashrc
          /etc/profile.d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值