Linux Shell的配置文件

核心概念

Login Shell 和 Non-login Shell

类型 触发场景 特点
Login Shell 1. 通过tty登录
2. su - username
3. SSH远程登录
4. bash --login
需要输入用户名和密码的完整登录会话。
Non-login Shell 1. 图形界面打开终端
2. su username (不带-)
3. 执行脚本
4. 终端中再启动bash
不需要重新认证的会话。

配置文件加载顺序

Login Shell 加载流程

# 1. 全局配置 (所有用户生效)
/etc/profile
    └── /etc/profile.d/*.sh  # 通常被/etc/profile调用

# 2. 用户个人配置 (按顺序查找,找到第一个即停止)
~/.bash_profile  # ← 优先
~/.bash_login    # ← 其次  
~/.profile       # ← 最后

# 注意:有些Linux发行版可能使用其他文件

Non-login Shell 加载流程

# 继承父shell环境后,加载:
# 系统级bashrc,某些发行版使用此文件
/etc/bash.bashrc

# 个人配置文件
~/.bashrc
# 通常 ~/.bash_profile 中会显式调用 ~/.bashrc,以确保环境一致

注意事项

划分配置文件的组织结构

根据.bash_profile.bashrc的加载时机区分配置内容。

~/
├── .bash_profile     # → 设置环境变量,特别是 PATH 路径
├── .bashrc           # → 主配置文件,加载其他文件,设置环境变量以外的所有内容
├── .bash_aliases     # → 专门放别名
├── .bash_functions   # → 专门放函数

.bashrc中:

source ~/.bash_aliases
source ~/.bash_functions

激活更改

.bashrc等配置文件所做的更改不会立即生效,除非关闭当前的终端会话并启动一个新的会话。不过,可以使用以下命令强制bash重新读取修改后的.bashrc文件:

source ~/.bashrc
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容