linux登入式与非登入式shell
登入相关配置文件
拿centos7环境举例,bash相关的配置文件主要分为全局配置文件和个人配置文件。
- 全局配置文件
/etc/profile/etc/profile.d/*.sh/etc/bashrc
- 个人配置文件
~/.bash_profile~/.bashrc
可以看到,配置文件主要分为profile类和bashrc类文件。
profile类文件主要作用- 设定环境变量。
- 运行命令或脚本(登录时运行的脚本)。
bashrc类文件主要作用- 设定本地变量。
- 定义命令别名。
登入式shell与非登入式的区别
区别在于,初始化shell时执行的初始化步骤不同,读取配置文件的顺序不同。
- 登入式shell读取配置流程
/etc/profile->/etc/profile.d/*.sh->~/.bash_profile->~/.bashrc->/etc/bashrc
- 非登入式shell读取配置流程
~/.bashrc->/etc/bashrc->/etc/profile.d/*.sh
在profile类的文件中会设置HOME,USER,PATH,MAIL等环境变量,所以非登陆shell可能会面临奇怪的命令找不到,环境变量未定义等问题。
登入式与非登入式shell的开启方式
- 登录式shell
- 正常通过某终端登录的shell。
su - username方式切换用户。su -l username方式切换用户。
- 非登录式shell
su username方式切换用户。- 图形终端下打开的命令窗口。
- 自动执行的shell脚本。
所以一般切换用户的时候,建议使用su -方式而不是su这种方式。
浙公网安备 33010602011771号