Bash的環境配置文件

    在開始介紹bash的配置文件之前,需要了解的就是login shell與non-login shell。這兩個shell區別如下:

   *  login shell:就是取得bash時需要完整的登陸流程,就是login shell。如:由tty1登陸,需輸入用戶名和密碼,此時取得的bash就是login shell了。

 

   *  non-login shell:取得bash界面的方法不需要重複登陸的舉動。如:在x-window環境下來啓動終端,測試終端界面不需要再次輸入帳戶與密碼,那個bash的環境就是non-login shell了;或在原來的bash環境下再次下達bash的這個指令,也不需要輸入帳戶與密碼,那個第二個bash也是non-login shell

  *  上面兩個shell不同之處在於這兩個取得的bash時,讀取的配置文件不同。

       ========================================

 

一、系統設置值 /etc/profile文件(login shell纔會讀取)

   這是系統整體的配置文件,該配置文件可以利用登陸者的UID來決定很多重要的變量信息,這也是每個用戶登陸取得bash時一定會讀取的配置文件,所以想要對所有用戶設置整體環境,可對其進行修改。該文件設置的變量主要有:

  *  PATH:會根據UID決定PATH變量要不要含有sbin的系統指令目錄;

  *  MAIL:根據帳戶設置/var/spool/mail/賬號名稱;

  *  USER:根據用戶的賬號設置此變量內容;

  *  HOSTNAME:依據主機的hostname指令設置此變量的內容;

  *  HISTSIZE:歷史命令記錄數,一般設置成50,比較安全.

 

  /etc/profile不止完成上述內容,還會調用外部的設置資料:

  *  /etc/inputrc:用來設置bash的熱鍵、[tab]是否有聲音等信息;

  *  /etc/profile.d/*.sh:該目錄下的文件規定了bash的操作界面、語系以及一些公共的命令別名。

  *  /etc/sysconfig/i18n:這個文件是由/etc/profile.d/lang.sh調用的,是決定bash默認使用何種語系的重要配置文件。

 

 

二、個人設置值 (login shell纔會讀)

   bash在讀取完/etc/profile配置文件後,接下來會讀取用戶的個人配置文件。在login shell的bash環境中,所讀取的個人設定主要有三個,依序分別是:

  •      ~/.bash_profile、 ~/.bash_login、 ~/.profile

   這三個個人設置文件在個人家目錄的幾個隱藏文件中.(上面幾個文件都是隱藏文件,需要使用ls -al才能顯示).

    其實bash的login shell設置只會讀取上面三個文件中的一個,一般默認是以~/.bash_profile文件名存在.之所以有這麼多的文件,是因爲其他shell轉換過來的用戶的習慣,它們的讀取的順序依照上面 ~/.bash_profile --> ~/.bash_login --> ~/.profile的順序。也就是說,如果~/.bash_profile存在,那麼其他兩個文件不論是否存在均不會被讀取。若~/.bash_profile不存在纔會讀取~/.bash_login,而前兩者均不存在纔會讀取~/.profile文件。下面介紹一下~/.bash_profile文件的內容(以root用戶爲例):

     

[root@localhost ~]# cat ~/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then #判斷~/.bashrc是否存在,存在則執行該文件 . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin #根據用戶進行特定設置 export PATH unset USERNAME


 

  •  ~/.bash_history

      默認情況下,歷史命令就記錄在這裏.而這個文件記錄能夠記錄在這裏.而這個文件能夠記錄多少數據,則與HISTORY變量有關.每次登錄bash後,bash會先讀取這個文件,將

所有的歷史命令讀入內存,因此,當我們登錄bash後,就可以查知上次使用過哪些命令.更多的歷史命令,請參考以前的內容.

 

  •  ~/.bash_logout

      這個文件記錄"當我註銷後,系統再幫我做完什麼操作後才離開".可以讀取這個文件

的內容,默認情況下,註銷時,bash只是清掉屏幕的消息.不過,也可以將一些備份或者其他你認爲重要的工作寫在這個文件中.

 

 

三、 ~/.bashrc(non-login shell會讀取)

    當你取得non-login shell時,該bash僅僅會讀取~/.bashrc文件,該文件內容爲:

   [root@localhost ~]# cat ~/.bashrc # .bashrc # User specific aliases and functions #用戶的個人設置 alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions #整體環境設置 if [ -f /etc/bashrc ]; then . /etc/bashrc fi


 


 

      在該配置文件中看到會讀取/etc/bashrc,那麼該文件主要用於:

     *  依據不同的UID給出umask的值;

     *  依據不同的UID給出提示字符(就是PS1變量)

     *  調用/etc/profile.d/*.sh的設置

 

四、 歸納

  最後我們來看一下整個的login shell的流程:

  

  實線的方向是主要流程,虛線表示被呼叫的配置文件。從上面流程,我們可以知道在login shell的環境下,最終被讀取的配置文件是“~./bashrc”。所以,我們可以將個人需要的設置寫在該文件即可。

    ps:

     另外說明一下,由於/etc/profile與~/.bash_profile都是在取得login shell的時候纔會讀取配置文件,所以,如果你將自己的特定設置寫入上述文件後,通常需要退出後再登陸配置文件才能生效。其他我們可以留用source命令或小數點(.)將配置文件的內容讀入當前shell環境中。

    


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章