什麼是 bashrc,以及與profile 的區別

2021-08-21 01:19:32 字數 2306 閱讀 6640

~/是進入當前使用者的主目錄。比如我用的使用者名稱是aaa

那麼命令

cd ~/ 就進入了/home/aaa 目錄。

.bashrc 是進入.bashrc資料夾,就是使用者目錄下的名字是.bashrc的目錄。

使用man bash命令檢視到的聯機幫助檔案中的相關解釋如下:

.bashrc - the individual per-interactive-shell startup file.

這個檔案主要儲存個人的一些個性化設定,如命令別名、路徑等。下面是個例子:

# user specific aliases and functions

path="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"

lang=zh_cn.gbk

export path lang

alias rm='rm -i'

alias ls='/bin/ls -f --color=tty --show-control-chars'

例子中定義了路徑,語言,命令別名(使用rm刪除命令時總是加上-i引數需要使用者確認,使用ls命令列出檔案列表時加上顏色顯示)。

每次修改.bashrc後,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻載入修改後的設定,使之生效。

一般會在.bash_profile檔案中顯式呼叫.bashrc。登陸linux啟動bash時首先會去讀取~/.bash_profile檔案,這樣~/.bashrc也就得到執行了,你的個性化設定也就生效了。

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的執行都會使用它一次

什麼是GPL, LGPL以及SPL

因為要做的東西涉及到license的問題,所以查了一下這三種license gpl 和 lgpl gnu通用公共許可證 簡稱為gpl 是由自由軟體 會發行的用於計算機軟體的許可證。最初由richard stallman為gnu計畫而撰寫。目前大多數的gnu程式和超過半數的自由軟體使用此許可證。此許可...

什麼是Sqoop,以及應用

將資料從別的資料庫導到hadoop hbase或hive太麻煩了。sqoop就是hadoop hive hbase等資料倉儲與資料庫之間傳輸資料的工具。就是將匯入 輸入 和匯出 輸出 的命令對映成mr程式。匯入 mysql等資料庫資料匯入到hdfs hive hbase等資料倉儲 匯出 hadoop...

什麼是Vagrant 以及作用

一 vagrant是構建在虛擬化技術之上的虛擬執行環境管理工具 1.建立和刪除虛擬機器 2.配置虛擬機器執行引數 3.管理虛擬機器執行狀態 4.自動化配置和安裝開發環境 5.打包和奮發虛擬機器執行環境 二 vagrant的執行,需要依賴某項具體的虛擬化技術 類似於virtualbox 開源的虛擬化軟...