站在用户登录的角度来说,SHELL的类型: 登录式shell: 正常通常某终端登录 su - USERNAME (完全切换) su -l USERNAME

非登录式shell: su USERNAME (半切换) 图形终端下打开命令窗口 自动执行的shell脚本


  • 由于你在用户中设置了某些配置后,如果你再次登陆的话,有些配置会还原到一开始的默认配置。那么这个时候就需要来配置bash来设定属于你自己的默认配置!!!

bash的配置文件: 全局配置 /etc/profile, /etc/profile.d/*.sh, /etc/bashrc 个人配置(只对登陆用户的本身有效) ~/.bash_profile, ~/.bashrc

profile类的文件: 设定环境变量 运行命令或脚本(用户一登录就显示的信息,准备工作)

bashrc类的文件: 设定本地变量 定义命令别名

  • 在一般情况下,如果一个环境变量在全局配置和个人配置中都定义了并且还不一样,那么通常作用范围越小的配置越最终有效。所以如果全局配置和个人配置中有产生歧义的配置,那么有效的则是个人配置。

登录式shell如何读取配置文件? /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非登录式shell如何配置文件? ~/.bashrc --> /etc/basrc --> /etc/profile.d/*.sh

  • 例:如何用alias如何定义cls=clear 登出后有效? 首先确定时bashrc类的(设定本地变量), nano .bashrc 加一行 alias cls=clear
  • 例:如何在登陆的时候显示一行文字比如“hello welcome!”? 首先确定时profile类的(运行命令或脚本), nano .bash_profile 加一行 echo "hello welcome !"