1)交互式登录的shell

    su - gentoo
    远程终端登录的shell
2)非交互式的shell
    su gentoo
    脚本运行过程中的shell
    在图形界面打开的模拟shell
 
交互式登录读取配置文件的过程:
/etc/profile ---> /etc/profile.d/* ---> ~/.bash_profile ---> ~/.bashrc ---> /etc/bashrc
非交互式登录读取配置文件的过程:
~/.bashrc ---> /etc/bashrc ---> /etc/profile.d/*
 
profile类文件:
1)设定环境变量
2)运行一些命令
 
bashrc类文件:
1)本地变量
2)命令别名
 
说到变量,变量其实就是内存空间,有以下几类变量:
1)本地变量
2)环境变量   
3)特殊变量   
4)位置变量
注:本地变量与环境变量的作用范围不同,本地变量只作用于当前的shell,而环境变量对于shell和子shell都有效,变量的生命周期只作用当前的shell,推出shell后就失效;用set查看查看变量,用export和env查看环境变量
变量定义的规则:
a.变量与变量内容用“=”连接
b.等号两边不能有空格,若变量内容有空格使用单引号或双引号将变量内容结合起来
c.变量名只能是数字、字母和下划线,但不能以数字开头
d.使用转义字符'\'将特殊符号变成一般符号
e.若变量需要为了增加变量内容时,则可用"$变量名称"或${变量}累加内容
f.若该变量需要在其他进程执行,用export将其设置成环境变量
g.用unset撤销变量
注:尽量避开系统已用变量名
下面我们来了解下一些重要的系统环境变量
PATH:在shell中键入命令对应的可执行文件的搜索路径
HISTSIZE: 命令历史
HOME:当前用户的家目录
LANG:语言和字符集
HOSTNAME:主机名称
PWD:当前工作目录
SHELL:当前正在执行的shell
PS1:命令提示符