Linux shell配置文件
shell配置文件
常见的Linux发行版系统中,使用的shell的配置文件有多个,总的来说可以分为两类,全局配置文件和局部配置文件。
-
全局配置文件:针对有所用户都有效,默认位于/etc/目录下
-
局部配置文件:只针对特定的用户生效,默认位于用户的家目录(~/)下
每类配置文件,按照功能又可以分为profile类和bashrc类,profile类为 交互式登录 的shell提供配置,bashrc类是为非交互式登录的shell提供配置。
-
交互式登录shell:使用终端输入账号密码登录,在用户登录时启动的,例如通过 SSH登录。
-
非交互式登录shell:在用户已登录后启动的,例如在图形界面的终端模拟器中打开一个新终端。
除了交互式登录shell,还有非交互式shell,这一般是脚本执行时的环境。它不会读取配置文件。
配置文件分类
全局配置文件:
-
/etc/profile 和 /etc/profile.d/*.sh
-
/etc/bashrc
局部配置文件:
-
~/.bash_profile
-
~/.bashrc
配置文件执行顺序
如果是交互式登录shell
1、会先执行/etc/profile文件,因为/etc/profile文件中包含了对/etc/profile.d/的引用,所以如果该目录下不为空,会遍历目录下所有的 .sh 文件,并执行;
2、执行当前用户加目录下的局部配置文件,一般局部配置文件有三个,优先级从高到低分别是:(~/.bash_profile ~/.bash_login ~/.profile),只会执行这三个文件中的一个,
- 首先,检查 ~/.bash_profile 是否存在。如果存在,读取并执行该文件,然后停止,不再继续读取其他文件
- 如果 ~/.bash_profile 不存在,检查 ~/.bash_login 是否存在。如果存在,读取并执行这个文件,然后停止
- 如果 ~/.bash_profile 和 ~/.bash_login 都不存在,检查 ~/.profile。如果文件存在,就会读取并执行
3、退出shell时,会执行~/.bash_logout这个配置文件
如果是非登录式shell
只会执行~/.bashrc这个配置文件,
配置文件作用
-
profile类:设定环境变量、运行命令或脚本(登录时运行的脚本)
-
bashrc类 :设定本地变量、定义命令别名
例如:修改PATH变量的值一般就放在/etc/profile.d/下
当任何用户启动一个登录shell时,都会获得这些PATH修改
echo " export PATH=/usr/local/python3/bin:$PATH" > /etc/profile.d/python2.sh
# 生效:
source /etc/profile.d/python2.sh
例如:定义命令别名
可以直接在/etc/profile文件中添加
echo "alias mv = 'mv -i'" >> /etc/profile
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了