linux關於bashrc與profile的區別

來源:互聯網
上載者:User



bashrc與profile的區別

要搞清bashrc與profile的區別,首先要弄明白什麼是互動式shell和非互動式shell,什麼是login shell 和non-login shell。

互動式模式就是shell等待你的輸入,並且執行你提交的命令。這種模式被稱作互動式是因為shell與使用者進行互動。這種模式也是大多數使用者非常熟悉的:登入、執行一些命令、簽退。當你簽退後,shell也終止了。 shell也可以運行在另外一種模式:非互動式模式。在這種模式下,shell不與你進行互動,而是讀取存放在檔案中的命令,並且執行它們。當它讀到檔案的結尾,shell也就終止了。

bashrc與profile都用於儲存使用者的環境資訊,bashrc用於互動式non-loginshell,而profile用於互動式login shell。系統中存在許多bashrc和profile檔案,下面逐一介紹:

/etc/pro此檔案為系統的每個使用者佈建環境資訊,當第一個使用者登入時,該檔案被執行.

並從/etc/profile.d目錄的設定檔中搜集shell的設定.

/etc/bashrc:為每一個運行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取。有些linux版本中的/etc目錄下已經沒有了bashrc檔案。

~/. pro每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該

檔案僅僅執行一次!預設情況下,它設定一些環境變數,然後執行使用者的.bashrc檔案.

~/.bashrc:該檔案包含專用於某個使用者的bash shell的bash資訊,當該使用者登入時以及每次開啟新的shell時,該檔案被讀取.

另外,/etc/profile中設定的變數(全域)的可以作用於任何使用者,而~/.bashrc等中設定的變數(局部)只能繼承/etc/profile中的變數,他們是"父子"關係.

某網友總結如下:

/etc/profile,/etc/bashrc 是系統全域環境變數設定

~/.profile,~/.bashrc使用者家目錄下的私人環境變數設定

當登入系統時候獲得一個shell進程時,其讀取環境設定檔有三步

1首先讀入的是全域環境變數設定檔/etc/profile,然後根據其內容讀取額外的設定的文檔,如

/etc/profile.d和/etc/inputrc

2然後根據不同使用者帳號,去其家目錄讀取~/.bash_profile,如果這讀取不了就讀取~/.bash_login,這個也讀取不了才會讀取

~/.profile,這三個文檔設定基本上是一樣的,讀取有優先關係

3然後在根據使用者帳號讀取~/.bashrc

至於~/.profile與~/.bashrc的不區別

都具有個人化定製功能

~/.profile可以設定本使用者專有的路徑,環境變數,等,它只能登入的時候執行一次

~/.bashrc也是某使用者專有設定文檔,可以設定路徑,命令別名,每次shell script的執行都會使用它一次

轉自:http://blog.chinaunix.net/uid-24460251-id-2606780.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.