當我們通過bash
進入linux系統中的時候,我們還沒有進行任何的操作,其實此時有許多的命令已經載入好了,這是什麼原因呢?其實是因為系統中有一些配置檔案的存在,在
bash
啟動的時候,會自動讀取這些配置檔案,而這些配置檔案又分為系統配置檔案和使用者個人配置檔案
3 non-login shell
在說明配置檔案之前,需要先說清楚login shell
和non-login shell
,因為在這兩個不同的狀態下讀取的配置檔案是不一樣的
login shell:取得bash
(就是終端)時需要完整的登入流程。
non-login shell:取得bash
的方法不需要重複登入的舉動。
以上兩種不同取得bash
的方式,讀取的配置檔案並不一致
我們大部分時候都是通過賬號和密碼登入到linux系統中去的,所以login shell
用到的頻率也會比較大一些,我們先來說一下login shell
會讀取的配置檔案。
/etc/profile
:這個檔案中儲存的是整個系統的設定,它利用使用者的識別符號(uid)來決定很多重要的變數資料,同時這也是每乙個使用者登入取得bash
時,一定會讀取的配置檔案,所以當需要為所有使用者設定環境變數時,應該修改這個檔案。
~/.bash_profile
或~/.bash_login
或~/.profile
:屬於使用者個人配置,登入bash
讀取完整體設定/etc/profile
,就會讀取登入使用者的個人配置,按照以下的順序進行讀取,bash
的login shell
設定只會按順序讀取下面三個檔案中的乙個(注意是乙個)。
下面檢視一下~/.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
關於這個檔案中內容有兩點記錄一下
bash
只有在取得的時候才會讀取配置檔案,所以我們剛剛修改了配置檔案的話,是不會立即生效的,需要等到我們下一次登入才生效。
有乙個命令可以讓剛剛修改的配置檔案立即生效,這就是source
。
作用:將指定的配置檔案讀取到本bash
的環境中。
source ~/.bashrc #這兩個形式的命令是等價的
. ~/.bashrc
對於non-login shell
,僅會讀取~/.bashrc
這乙個配置檔案而已
對於兩種不同的bash
,最後都會讀取的配置檔案就是~/.bashrc
參考書籍:《鳥哥的私房菜·第3版》
Linux學習 bash及其特性
shell 外殼 gui gnome,kde,xfce cli sh,csh,ksh,bash bourne again shell tcsh,zsh 不同使用者啟動相同sh程式,但是是不同的程序。程序 在每個程序看來,當前主機上只存在核心和當前程序。程序是程式的副本,也是程式執行的例項,具有生命週...
Bash的環境變數
一 環境變數與使用者自定義變數的區別 使用者自定義變數只在當前的shell中生效 環境變數在當前shell和這個shell的所有自shell中生效 對系統生效的環境名和變數作用是固定的。環境變數和使用者自定義變數最主要的區別在於,環境變數是全域性變數,而使用者自定義變數是區域性變數。使用者自定義變數...
Linux學習筆記 bash的基礎特性
history d offset 在指定位置刪除歷史命令 history c 清空歷史命令 history 顯示歷史中最近的 條命令 history a 手動追加當前繪畫緩衝區的命令歷史至歷史檔案中 呼叫歷史中的命令 esc,同上 alt 同上 控制命令歷史的記錄方式 修改環境變數值的方式 expo...