有关shell的bash的启动文件

发布时间:2019-11-20编辑:脚本学堂
bash的启动文件 启动文件就是当bash启动的时候执行的一些脚本文件,下面介绍下不同方式启动shell,会执行的启动文件。bash有两种工作模式:交互模式和非交互模式(即shell scripts模式)。

有关shell的bash的启动文件相关知识,有需要的朋友不妨看看。

bash的启动文件
启动文件就是当bash启动的时候执行的一些脚本文件,下面介绍下不同方式启动shell,会执行的启动文件。
bash有两种工作模式:交互模式和非交互模式(即shell scripts模式)。

登陆shell
一个登陆shell就是系统验证之后获得的shell,通常是输入用户名和密码.
这时shell先后读取:
/etc/environment   由pam的pam_env.so模块定义的文件
/etc/security/pam_env.conf  由pam的pam_env.so模块定义的文件,用户登陆经过pam验 证时使用
/etc/profile 每个用户登陆都会执行这个文件,所以修改此文件注意安全问题
~/.bash_profile
~/.bashrc
~/.bash_login

非登陆shell
一个非登陆shell就是没有经过系统验证的而开启的shell,比如使用终端图标开启的或者右击打开的shell,都属于非非登陆shell。
读取下面的文件:
~/.bashrc

如下:
 

复制代码 代码如下:
[root@localhost ~]# cat .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
[root@localhost ~]# echo 'export b=ok' >> .bashrc
[root@localhost ~]# bash
[root@localhost ~]# echo $b
ok
[root@localhost ~]# exit
exit
[root@localhost ~]# echo $b
[root@localhost ~]#

执行脚本
所有的脚本使用非交互模式的shell:
读取变量BASH_ENV定义的文件。
如:
 

复制代码 代码如下:
[root@localhost ~]# echo 'echo $a' > 1.sh
[root@localhost ~]# echo $BASH_ENV
[root@localhost ~]# chmod +x 1.sh
[root@localhost ~]# ./1.sh
[root@localhost ~]# export BASH_ENV="/root/start.sh"
[root@localhost ~]# echo 'a=nihao' > /root/start.sh
[root@localhost ~]# ./1.sh
nihao
[root@localhost ~]#