shell 在 shell 会话中维护着大量的信息,这些信息称为 (shell) 环境。 存储在
shell 环境中的数据被程序用来确定配置属性。然而大多数程序用配置文件来存储程序设置, 某些程序也会查找存储在shell 环境中的数值来调整他们的行为,所以可以用shell环境来定制shell经历.
1.shell存放两种基本类型的数据, 环境变量 和 shell变量 (由bash存放的少量数据),
2.通过set(bash内部命令) 和 printenv 查看变量, set 显示shell变量和环境变量两者,printenv只显示环境变量
printenv USER // 输出特定的变量的数据
set命令不加参数和选项的时候输出变量,并且按照字母顺序排序,
alias 来查看是别名的变量, set和printenv不可用
3.登录系统时,启动bash程序,读取一系列为启动文件的配置脚本,定义了可以供所有用户共享的shell环境,然后读取位于自己用户家目录中的启动文件,这些启动文件定义了用户个人的shell环境.(精确的启动顺序依赖于要运行的shell会话类型,和以上的不一定一样),shell会话类型:登录shell会话,非登录shell会话
表12-2: 登录 shell 会话的启动文件
文件 | 内容 |
---|---|
/etc/profile | 应用于所有用户的全局配置脚本。 |
~/.bash_profile | 用户私人的启动文件。可以用来扩展或重写全局配置脚本中的设置。 |
~/.bash_login | 如果文件 ~/.bash_profile 没有找到,bash 会尝试读取这个脚本。 |
~/.profile | 如果文件 ~/.bash_profile 或文件 ~/.bash_login 都没有找到,bash 会试图读取这个文件。这是基于 Debian 发行版的默认设置,比方说 Ubuntu。 |
表12-3: 非登录 shell 会话的启动文件
文件 | 内容 |
---|---|
/etc/bash.bashrc | 应用于所有用户的全局配置文件。 |
~/.bashrc | 用户私有的启动文件。可以用来扩展或重写全局配置脚本中的设置。 |
PS: 如何在变量后面加内容
PATH = $PATH:$HOME/bin //会在后面加一个:$HOME/bin 冒号也会加进去
按照通常的规则,添加目录到你的 PATH 变量或者是定义额外的环境变量,要把这些更改放置到.bash_profile 文件中(或者其替代文件中,根据不同的发行版。例如,Ubuntu 使用 .profile 文件)。 对于其它的更改,要放到 .bashrc 文件中。
在更改前可以做一个备份,
当我们更改了相关的配置文件,需要激活
source .bashrc