1. 程式人生 > >和使用者環境相關的幾個配置檔案(linux)

和使用者環境相關的幾個配置檔案(linux)

 使用者登入系統或使用su -命令 切換使用者時(注意不要漏掉這裡的“-”),會先執行/etc/profile 檔案,這是一個全域性配置檔案,一般把對所有使用者都要設定的環境變數放置在這個檔案中。然後執行使用者主目錄下的.bash_profile,而在.bash_profile 中又會執行.bashrc檔案,一般把只對使用者設定的特定環境變數放置在.bash_profile 檔案中,而在.bashrc檔案中仿製使用者登入時要自動執行的一些其他命令,如設定命令別名(alias)。另外使用者在bash shell 中輸入bash 啟動一個新的shel(也稱為子shell)時,也會執行.bashrc中的內容。這可以使得使用者分別設定登入時要執行的命令以及啟動子shell時要執行的命令。

當用戶退出時,會執行使用者主目錄下的.bash_logout檔案。如果要清楚當前賬戶建立的臨時檔案或給出當前使用者登入系統的總時間,可以在這個檔案中附加相應命令。

.bash_profile 、.bashrc、.bash_logout都是隱藏檔案,要使用ls -a命令才能看到。

修改這幾個檔案後,如果要使其立即生效,可以使用source命令或使用source命令的同義詞“.”,使用“.”時,要注意和檔名稱以空格分隔:

$source .bash_profile

$. .bash_profile

與.bash_profile有相同作用的還有另外兩個檔案:.bash_login以及.profile,.bash_login 的名稱來自於C shell 的.login 檔案,.profile的名稱來自於Bourne shell和Korn shell 的.profile檔案,這些檔案在各自的shell中,與.bash_profile有類似作用。當用戶登入時,只讀取三者之一,如果.bash_profile不存在,則尋找.bash_login,若.bash_login 再不存在,則尋找.profile。

可以在/etc/profiles、.bash_profile、.bashrc這幾個檔案中新增適當的內容,以測試在預設情況下,使用者登入時執行這些檔案的次序。如在/etc/profiles中的開始新增:echo “get into /etc/profiles”,在其末尾新增:echo “leave /etc/profiles”,對其他的檔案也以相同的方式新增類似內容,得到如下結果:

#su -oracle

get into /etc/profiles

leave /etc/profiles

get into /home/oracle/.bash_profile

get into /home/oracle/.bashrc

leave /home/oracle/.bashrc

leave /home/oracle/.bash_profile

看以上結果可以得知這幾個檔案的執行順序。