Linux中的启动文件及环境文件

在登录Linux系统时,一般会从以下几个启动文件中读取命令:
 /ect/profile
 $HOME/.bash_profile
 $HOME/.bashrc
 $HOME/.bash_login
 $HOME/.profile

系统中并不一定有这种的所有文件,可能只含有部分文件。
其中
1)/etc/profile文件是bash shell的主启动文件。系统上每个用户登录时都会执行的启动文件。
一般 /etc/profile文件中都有如下代码

for i in /etc/profile.d/*.sh ;do     
        if [ -r "$i" ] ; then
                if [  "${-#*i}" != "$-" ] ; then
                        . "$i"
                else
                        . "$i" >/dev/null 2>&1
                fi
        fi
    done

表明在启动shell时,会自动启动文件夹 /etc/profile下的所有的.sh文件。因此可以在该文件夹下定义需要使用的全局变量或者函数。且不会在退出shell时消失。

2)$HOME目录下的启动文件

$HOME/.bash_profile
 $HOME/.bashrc
 $HOME/.bash_login
 $HOME/.profile

每个用户都可以编辑这些文件来添加自己的环境变量,这些环境变量会在每次启动bash shell会话时生效。
一般shell会按以下顺序,运行第一个被找到的文件,余下的被忽略:

$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile

这个列表中并没有$HOME.bashrc文件。英文这个文件可以通过以上几个文件运行。

交互式shell进程

如果是在shell中输入bash时启动的,则这种方式启动的shell叫作交互式shell。此时不会访问/etc/profile文件,只会检查用户HOME下的.bashrc文件。
因此可以在.bashrc文件中定制自己的命名别名或者私有脚本函数。

非交互式shell

即通过shell脚本启动的shell。bash shell提供了BASH_ENV环境变量。当shell启动一个非交互式shell进程时,它会检查这个环境变量来查看要执行的启动文件。如果有指定的文件,shell会执行该文件的命令,通常包括shell脚本变量设置。

声明一下,以上内容整理于《Linux命令行与shell脚本编程大全》的第六章。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值