在Linux和类Unix系统中,`.bashrc` 和 `.bash_profile` 是两个常用的 Bash shell 配置文件,它们的主要区别在于何时以及如何被加载:
- **`.bash_profile`**:
- 这个文件通常只在用户登录时读取。也就是说,当你以交互模式登录到系统(例如通过文本控制台或图形界面)时,Bash会执行这个文件中的命令。
- 如果你使用的是图形界面登录,并且启动终端模拟器来运行Bash,那么`.bash_profile`一般不会被执行,因为这不算是一个“登录shell”。
- `.bash_profile`通常是设置环境变量、启动程序等一次性配置的好地方。
- **`.bashrc`**:
- 每次打开一个新的交互式非登录shell时都会读取这个文件。这包括你在已经登录的系统上打开新的终端窗口或标签页。
- `.bashrc`是定义别名、函数、Shell选项、PS1提示符以及其他每Shell会话都需要的设置的理想位置。
- 在某些情况下,`.bash_profile`可能会调用`.bashrc`,这样可以确保无论何时启动Bash,一些通用的配置都能被应用。
### 总结
- **`.bash_profile`** 主要用于登录shell,适合存放那些只需要在登录时执行一次的设置。
- **`.bashrc`** 用于所有新的交互式shell,适合存放每次打开新shell都希望生效的设置。
### 常见实践
- 有时为了简化管理,人们会在`.bash_profile`中加入一行 `source ~/.bashrc` 或者 `.` (点) 命令来导入`.bashrc`的内容。这样做可以让所有的配置在登录shell时也能生效,同时保持了`.bashrc`作为主要配置文件的角色。
记住,这些文件都是位于用户的家目录下,并且是以`.`开头的隐藏文件。你可以使用`ls -a ~`命令查看这些隐藏文件。