linux 非交互式shell,交互式shell和非交互式shell、登录shell和非登录shell的区别

在解读shell之前要把bash理解一下,把它看成一种多层的模式。要清楚shell并不是某一个时间里只能存在一个的。打个比方就是,比如我们进入一个房子,看到门,打开门进去就是进入了一个环境,但是在这里我们又发现一扇门,当我们打开这扇门进去的时候,就进入了新的环境了,这里就是新的bash。

用户登录linux之后,系统会启动一个用户shell,在这个shell里,可以使用shell命令或者声明变量,也可以创建shell脚本去运行。当运行shell脚本的时候,系统会创建一个子shell。此时,系统有两个shell,一个是登录时系统启动的shell,一个是系统运行脚本所创建的shell,当这个脚本执行完毕了,这个脚本shell就终止了,也就返回到了执行该脚本之前的shell。证明了用户可以有很多shell,每个shell都是由父shell派生的。

注意子shell中定义的变量只在该子shell内有效。如果在一个shell脚本程序中定义了一个变量,这个变量只能是这个脚本的局部变量,在其他shell不可用。

Shell的一些配置文件的存放位置,按照范围可以分成两种:

1.全局配置

/etc/profile

/etc/profile.d/*.sh

/etc/bashrc

2.个人配置

~/.bash_profile

~/.bashrc

一般情况下,我们都是直接针对全局配置进行操作。

交互式shell和非交互式shell

shell可以通过交互式shell和非交互式shell两个维度进行分类

1.交互式:在

你可能感兴趣的:(linux,非交互式shell)