login和non-login shell的区别:
login shell:通过tty1~tty6登入,需要输入账号和密码
non-login shell:登入的方法不同,如:1、X window登入-登入终端没有输入用户名和密码,2、在shell环境中,在一次登入该用户(su命令),也没有输入用户名和密码,第二个shell也是non-login shell。
这两种登入shell的方式读取的配置文件是不一样的。
login shell读取:
/etc/profile 表示系统整体配置
~/.bash_profile或~/.bash_login 或 ~/.profile 表示使用者个人配置
non-login shell读取:
~/.bashrc
/etc/profile文件作用
1、定义了一些环境变量
PATH:根据 UID 决定 PATH 变量要不要含有 sbin 的系统命令目录
MAIL:根据账号配置好使用者的 mailbox 到 /var/spool/mail/账号名
USER:根据用户的账号配置此一变量内容
HOSTNAME:根据主机的 hostname 命令决定此一变量内容
HISTSIZE:历史命令记录笔数。
2、调用一些其他文件
/etc/inputrc 存放热键
/etc/profile.d/*.sh 存放一些使用者共享的命令
/etc/sysconfig/i18n 存放语言,CentOS7以上是调用这个文件/etc/locale.conf
使用者个人环境配置文件:
bash shell读完整体的环境配置文件以后,读取使用者个人环境配置文件
读取顺序为:
~/.bash_profile
~/.bash_login
~/.profile
实际工作中bash shell只会读取其中的一个文件。也就是说,读了/.bash_profile就不会读取/.bash_login和/.profile文件了,除非没有/.bash_profile文件。