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),只会执行这三个文件中的一个,

  1. 首先,检查 ~/.bash_profile 是否存在。如果存在,读取并执行该文件,然后停止,不再继续读取其他文件
  2. 如果 ~/.bash_profile 不存在,检查 ~/.bash_login 是否存在。如果存在,读取并执行这个文件,然后停止
  3. 如果 ~/.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

posted on 2022-06-16 23:18  背对背依靠  阅读(507)  评论(0编辑  收藏  举报