管理你的 shell 環境

2019-07-13 12:19:00

前段時間,Fedora Magazine 發表了一篇 介紹 ZSH 的文章,它是 Fedora 預設的 bash shell 的替代品。這一次,我們將著重客製化它來更有效地使用它。本文中顯示的所有概念也適用於其他 shell,例如 bash。

別名

別名是命令的快捷方式。為那些需要經常執行,但需要很長時間輸入的長命令建立快捷方式很有用。語法是:

$ alias yourAlias='complex command with arguments'

它們並不總是用來縮短長命令。重要的是,你將它們用於你經常執行的任務。可能的例子:

$ alias dnfUpgrade='dnf -y upgrade'

這樣,為了進行系統升級,我只需輸入 dnfUpgrade 而不用輸入完整的 dnf 命令。

在終端中設定別名的問題是,一旦終端對談關閉,別名就會丟失。要永久設定它們,請使用資原始檔。

資原始檔

資原始檔(即 rc 檔案)是在對談或進程開始時(每個使用者在開啟新終端視窗或啟動 vim 等新程式時)載入的組態檔。對於 ZSH,資原始檔是 .zshrc,對於 bash,它是 .bashrc

要使別名成為永久別名,你可以將它們放入資原始檔中。你可以使用你選擇的文字編輯器編輯資原始檔。這裡使用 vim:

$ vim $HOME/.zshrc

或者對於 bash:

$ vim $HOME/.bashrc

請注意,資原始檔的位置是相對於家目錄指定的。這是 ZSH(或 bash)預設為每個使用者查詢該檔案的位置。

還有一種是將你的設定放在任何其他檔案中,然後讀取它:

$ source /path/to/your/rc/file

同樣,在對談中直接讀取它只會將其應用於對談,因此要使其永久化,請將 source 命令新增到資原始檔中。將檔案放在不同位置的優點是你可以隨時讀取它。這在共用環境中很有用。

環境變數

環境變數是分配了特定名稱的值,你可以在指令碼和命令中呼叫它們。它們以美元符號($)開始。其中最常見的是指向主目錄的 $HOME

顧名思義,環境變數是你環境的一部分。使用以下語法設定變數:

$ http_proxy="http://your.proxy"

要使其成為環境變數,請使用以下命令將其匯出:

$ export $http_proxy

要檢視當前設定的所有環境變數,請使用 env 命令:

$ env

該命令輸出對談中可用的所有變數。要演示如何在命令中使用它們,請嘗試執行以下 echo 命令:

$ echo $PWD/home/fedora$ echo $USERfedora

這裡發生了變數擴充套件,即儲存在變數中的值在命令中使用。

另一個有用的變數是 $PATH,它定義了 shell 查詢二進位制檔案的目錄。

$PATH 變數

有許多對於作業系統很重要的目錄或資料夾(在圖形環境中呼叫它們的方式)。某些目錄設定為儲存可直接在 shell 中使用的二進位制檔案。這些目錄在 $PATH 變數中定義。

$ echo $PATH/usr/lib64/qt-3.3/bin:/usr/share/Modules/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/usr/libexec/sdcc:/usr/libexec/sdcc:/usr/bin:/bin:/sbin:/usr/sbin:/opt/FortiClient

當你希望在 shell 中存取自己的二進位制檔案(或指令碼)時,這會有幫助。