Linux的shell環境

Pruett發表於2018-06-11

shell 在 shell 會話中維護著大量的資訊,這些資訊稱為 (shell) 環境。 儲存在
shell 環境中的資料被程式用來確定配置屬性。然而大多數程式用配置檔案來儲存程式設定, 某些程式也會查詢儲存在shell 環境中的數值來調整他們的行為,所以可以用shell環境來定製shell經歷.
1.shell存放兩種基本型別的資料, 環境變數 和 shell變數 (由bash存放的少量資料),
2.通過set(bash內部命令) 和 printenv 檢視變數, set 顯示shell變數和環境變數兩者,printenv只顯示環境變數

printenv USER // 輸出特定的變數的資料

set命令不加引數和選項的時候輸出變數,並且按照字母順序排序,

alias 來檢視是別名的變數, set和printenv不可用

3.登入系統時,啟動bash程式,讀取一系列為啟動檔案的配置指令碼,定義了可以供所有使用者共享的shell環境,然後讀取位於自己使用者家目錄中的啟動檔案,這些啟動檔案定義了使用者個人的shell環境.(精確的啟動順序依賴於要執行的shell會話型別,和以上的不一定一樣),shell會話型別:登入shell會話,非登入shell會話

表12-2: 登入 shell 會話的啟動檔案

檔案 內容
/etc/profile 應用於所有使用者的全域性配置指令碼。
~/.bash_profile 使用者私人的啟動檔案。可以用來擴充套件或重寫全域性配置指令碼中的設定。
~/.bash_login 如果檔案 ~/.bash_profile 沒有找到,bash 會嘗試讀取這個指令碼。
~/.profile 如果檔案 ~/.bash_profile 或檔案 ~/.bash_login 都沒有找到,bash 會試圖讀取這個檔案。這是基於 Debian 發行版的預設設定,比方說 Ubuntu。

表12-3: 非登入 shell 會話的啟動檔案

檔案 內容
/etc/bash.bashrc 應用於所有使用者的全域性配置檔案。
~/.bashrc 使用者私有的啟動檔案。可以用來擴充套件或重寫全域性配置指令碼中的設定。

PS: 如何在變數後面加內容

PATH = $PATH:$HOME/bin  //會在後面加一個:$HOME/bin  冒號也會加進去

按照通常的規則,新增目錄到你的 PATH 變數或者是定義額外的環境變數,要把這些更改放置到.bash_profile 檔案中(或者其替代檔案中,根據不同的發行版。例如,Ubuntu 使用 .profile 檔案)。 對於其它的更改,要放到 .bashrc 檔案中。
在更改前可以做一個備份,

當我們更改了相關的配置檔案,需要啟用

source .bashrc

相關文章