到這裡﹐您或許會問﹕shell 的環境變數在哪裡定義呢﹖可以調整嗎﹖
嗯﹐第一個問題我不大了解﹐我猜那是 shell 設計者預設定義好的﹐我們一登錄獲得 shell 之後就有了。不過﹐第二個問題﹐我卻可以肯定答復您﹕您可以隨時調整您的環境變數。您可以在進入 shell 之後用在命令行裡面重新定義﹐也可以透過一些 shell 設定檔來設定。
先讓我們看看﹐當您在進行登錄的時候﹐系統會檢查哪些檔案吧﹕
- /etc/profile﹕首先﹐系統會檢查這個檔﹐以定義如下這些變數﹕PATH﹑USER﹑LOGNAME﹑MAIL﹑HOSTNAME﹑HISTSIZE﹑INPUTRC。如果您會 shell script (我們後面再討論)﹐那您應該看得出這些變數是如何定義的。另外﹐還指定了 umask 和 ulimit 的設定﹕umask 大家應該知道了﹐而 ulmimit 呢﹖它是用來限制一個 shell 做能建立的行程數目﹐以避免系統資源被無限制的消耗。最後﹐它還會檢查並執行 /etc/profile.d/*.sh 那些 script﹐有興趣您可以追蹤看看。
- ~/.bash_profile﹕這裡會定義好 USERNAME﹑BASH_ENV﹑PATH。其中的 PATH 除了現有的 $PATH 之外﹐還會再加入使用者相關的路徑﹐您會發現 root 和普通帳號的路徑是不一樣的﹔而 BASH_ENV 呢﹐仔細點看﹐是下一個要檢查的檔案﹕
- ~/.bashrc﹕在這個檔裡面﹐您可以發現一些 alias 設定(哦~~ 原來在這裡﹗)。然後﹐您會發現有一行﹕. /etc/bashrc 。在 shell script 中﹐用一個小數點然後然後一個空白鍵再指向另外一個 script﹐意思是同時執行那個 script 並採用那裡的變數設定。
- /etc/bashrc﹕基本上﹐這裡的設定﹐是所有使用者在獲得 shell 的時候都會採用的。這裡指定了一些 terminal 設定﹐以及 shell 提示字符等等。
- ~/.bash_login﹕如果 ~/.bash_profile 不存在﹐則使用這個檔。
- ~/.profile﹕如果 ~/.bash_profile 和 ~/.bash_login 都不存在﹐則使用這個檔。
- ~/.bash_logout﹕這個檔通常只有一個命令﹕clear﹐也就是把熒幕顯示的內容清掉。如果您想要在登出 shell 的時候﹐會執行一些動作﹐例如﹕清空臨時檔(假如您有使用到臨時檔)﹑還原某些設定﹑或是執行某些備份之類的。
您可以透過修改上面提到的檔案﹐來調整您進入 shell 之後的變數值。一般使用者可以修改其家目錄( ~/ )中的檔案﹐以進行個人化的設定﹔而作為 root﹐您可以修改 /etc/下面的檔案﹐設定大家共用的變數值。至於 bash 的變數值如何設定﹖有哪些變數﹖各變數的功能如何﹖您打可以執行 man bash 參考手冊資料。
Tips﹕一旦您修改了 /etc/profile 或 ~/.bash_profile 檔案﹐其新設定要在下次登錄的時候才生效。如果您不想退出﹐又想使用新設定﹐那可以用 source 命令來抓取﹕
阅读(1299) | 评论(0) | 转发(0) |