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文件。