- 在bash shell中存在两种变量:
- 全局变量 全局环境变量对于shell会话和所有生成的子shell都是可见的。
- 局部变量 局部变量则只对创建它们的shell可见。
- 启动bash shell 有三种方式:
- 登录时作为默认登录shell
当你登录Linux系统时,bash shell会作为登录shell启动。登录shell会从5个不同的启动文件里 读取命令:- /etc/profile > /etc/profile文件是bash shell默认的的主启动文件。只要你登录了Linux系统,bash就会执行 /etc/profile启动文件中的命令
提供一个用户专属的启动文件来定义该用户所用到的环境变量。大多数Linux发行版只用这四个启动文件中的一到两个: - $HOME/.bash_profile - $HOME/.bashrc - $HOME/.bash_login - $HOME/.profile
/etc/profile文件是系统上默认的bash shell的主启动文件。系统上的每个用户登录时都会执行 这个启动文件。
shell会按照按照下列顺序,运行第一个被找到的文件,余下的则被忽略:
$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile
注意,这个列表中并没有$HOME/.bashrc文件。这是因为该文件通常通过其他文件运行的。 .bash_profile启动文件会先去检查HOME目录中是不是还有一个叫.bashrc的启动文件。如果有 的话,会先执行启动文件里面的命令。
- 作为非登录shell的交互式shell
如果你的bash shell不是登录系统时启动的(比如是在命令行提示符下敲入bash时启动),那 么你启动的shell叫作交互式shell。
如果bash是作为交互式shell启动的,它就不会访问/etc/profile文件,只会检查用户HOME目录 中的.bashrc文件。
- 作为运行脚本的非交互shell