歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> 登入shell和非登入shell的區別

登入shell和非登入shell的區別

日期:2017/2/28 15:28:38   编辑:SHELL編程

使用啟動腳本,可以讓自定義的環境一勞永逸。

這些腳本在shell被創建時運行

根據shell是登入shell還是非登入shell,所運行的啟動腳本也會不一樣

我們“su - ”是登入shell;“su ”是非登入shell

放在啟動腳本中典型的包括:

① 本地變量設置,特別是PS1

比如,我的:

[Oracle@10gR2 ~ $]tail -f .bash_profile | grep -n --color=auto 'PS1'

10:export PS1='[\u@10gR2 \W \$]'

② 環境變量 例如 PATH

③ 別名

④ umask

㈠ 登入shell

/etc/profile 是登入shell啟動後運行的第一個啟動腳本

它只為登入shell運行;非登入shell不會引發這個腳本

登入shell加載啟動腳本的順序為:

/etc/profile → /etc/profile.d → .bash_profile → .bashrc → /etc/bashrc

每個調用的腳本會依次撤銷前一個調用腳本中的改變

在退出登入shell時,我們還可以執行某些任務,如創建自動備份、清除臨時文件

把這些任務放在.bash_logout文件中

㈡ 非登入shell

非登入shell加載啟動腳本的順序:

.bashrc → /etc/bashrc → /etc/profile.d

Copyright © Linux教程網 All Rights Reserved