ZT - 對話 UNIX: UNIX 高手的重大秘密(1)

saintsiro發表於2010-08-08
Martin Streicher, 軟體開發人員, Pixel, Byte, and Comma 如果您想知道我為何佩戴黑色太陽鏡、假鬍鬚和棒球帽(模仿一個專業冰壺球隊 The Floating Stones 的徽標),那是因為我正在逃亡之中。我正在躲避黑色的遙控直升機、面色蒼白的系統管理員和許多 “妖魔鬼怪” 的追蹤,我這樣做的目的只有一個,就是向您披露 UNIX® 高手的重大秘密。請戴上您的鋁箔帽閱讀本文吧! 儲存環境變數 大多數 UNIX 使用者在 .bashrc(針對 Bash shell)和 .zshrc(針對 Z shell)等 shell 啟動檔案中塞滿大量使用者設定,以便一次又一次地重建鍾愛的 shell 環境。啟動檔案能夠建立別名、設定 shell 選項、建立函式、以及設定環境變數。關鍵的環境變數包括 HOME(指向您的主目錄)、PATH(列舉從中搜尋應用程式的目錄)和 MANPATH(列舉從中搜尋手冊頁的目錄)。要檢視您的 shell 中設定了哪些環境變數,鍵入 printenv 命令。查閱 shell 手冊頁,獲取可用環境變數的完整列表。 與 shell 一樣,可以透過環境變數定製其他許多 UNIX 應用程式。例如,Java™ 子系統要求定義 JAVA_HOME 來指向 Java 執行時的根。同樣,Amazon Web Services (AWS) 實用程式套件強制使用 AWS_CREDENTIAL_FILE 來指向一個包含有效私匙憑證的檔案。單獨的應用程式也提供環境變數,關鍵是如何發現這些變數。幸運的是,這種工作不需要非法入侵;相反,只需查詢手邊的實用工具手冊頁,查詢標題為 “Environment Variables” 的章節即可。 例如,分頁實用程式 less 定義了幾個有用的環境變數: 環境變數 LESS 儲存一些命令列選項,以在您每次呼叫該分頁程式時減少鍵入量。例如,如果您需要閱讀大量日誌檔案,可將以下語句新增到一個 shell 啟動檔案中: export LESS='--RAW-CONTROL-CHARACTERS --squeeze-lines --ignore-case' ` 上述選項將分別解譯控制字元(通常是語法著色),將多個空行壓縮為一行,並忽略字串匹配中的大小寫。如果您使用程式碼,可嘗試以下選項: export LESS='--LINE-NUMBERS --quit-if-one-screen --quit-on-intr' 名為 LESSKEY 的環境設定指向一個密匙繫結檔案。可以使用密匙繫結來定製 less 的行為,比如,匹配另一個頁面或編輯器的行為。 與 shell 一樣,less 能保留多個呼叫之間的歷史。設定 LESSHISTFILE 和 LESSHISTSIZE 分別指向一個持久命令檔案和設定要記錄的命令的最大條數。 GNU Compiler Collection (GCC) 是另一個典型的環境變數應用示例。GCC 定義各種環境變數來定製其操作。LIBRARY_PATH,顧名思義,是一個目錄列表,用於搜尋要連結到的庫;COMPILER_PATH 的工作方式與 shell 的 PATH 非常相似,但是由 GCC 在內部使用,用於查詢編譯過程中使用的子程式。 如果您針對單個平臺寫程式碼並構建二進位制檔案,您可能永遠也不會用到這些環境變數,但是,如果您跨平臺交叉編譯相同的程式碼,那麼這些變數對於訪問每個平臺的不同的頭部和庫至關重要。您可以將這些變數設定為不同的值集合,一個集合針對一種機器,而另一個集合針對另一種風格的系統。 事實上,您可以從 GCC 獲得一個暗示:可以為每個應用程式維護多個環境變數集合,根據手邊的工作從一個集合切換到另一個集合。一種方法是在每個專案目錄中儲存一個環境初始化檔案並根據需要 source 它。例如,許多 Ruby 開發人員使用這種方法來在不同的 Ruby 版本間切換,根據需要更改環境變數 PATH、GEM_HOME 和 GEM_PATH,從一個版本跳到另一個版本。[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16896827/viewspace-1036452/,如需轉載,請註明出處,否則將追究法律責任。

相關文章