歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

.bash_profile .bashrc profile文件的作用的執行順序


登陸shell與交互式非登陸shell的區別 登錄shell 所謂登錄shell,指的是當用戶登錄系統時所取的那個 shell。登錄shell屬於交互式shell。 登錄
shell將查找4個不同的啟動文件來處理其中的命令。 bash shell處理文件的順序如下:
  www.2cto.com   1: /etc/profile
2: /etc/profile.d等待配置文件
3: $HOME/.bash_profile
4: $HOME/.bash_login
5: $HOME/.profile /etc /profile是bash shell在系統上的主默認啟動文 件,系統上 每一個用戶在登陸時都將執行此文件。 通過設置這個文件,超級用戶可以為全系統內的所有bash用戶建立默認特征。不同 Linux版本
在此文件放置的命令不盡相同, 在redflag中,該文件設置了幾個重要的變量,如:PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC,詳情可以查看具體的文件。
  www.2cto.com   其余3個文件具備相同的功能——提供特定於用戶的啟動文件。大多 數Linux版本只使用其中
之一。如:RedFlag使用.bash_profile ubuntu使用.profile . shell依次查找~/.bash_profile、
~/.bash_login、
~/.profile(~是用戶主目錄的速記符), 並執行它找到的首個文件中的命令。 可以將命令放置在這些文件中以覆蓋掉/etc/profile文件中的
默認設置。 也就是後面的文件可以覆蓋或者修改前面的設置 。 www.2cto.com   交互式非登錄shell 如果啟動了一個bash shell而沒有等錄系統(如在CLI提示符中鍵入bash),則啟動了一個交互式
非登錄shell. 而登錄shell的初始化文件(比如.bash_profile)通常會運行這個文件。這樣,登錄shell和非登錄
shell都可以使用.bashrc中的命令。
  如以X Window環境登錄Linux時,在X環境所起動的終端,那些shell都是非登錄shell. 在交互式非登錄shell中並不執行前面提到的初始化文件中的命令。然而,交互式非登錄shell從
登錄shell繼承了由這些初始化文件設置的 shell變量。 $HOME/.bashrc
  交互式非登錄shell執行~/.bashrc文件中的命令.在每次執行shell腳本時,都會重新讀取這個文件,
所以是最完整的。 但是萬事都不是一樣的,debain系列的是不同的,如ubuntu /etc/profile--</etc/environment--<$HOME/.profile
 
Copyright © Linux教程網 All Rights Reserved