一、shell變數分為本地變數和環境變數。
1、本地變數:在使用者現有執行的指令碼中使用
a) 定義本地變數 格式: variable-name=value
b) 顯示本地變數 格式: set
c) 清除本地變數 格式:unset variable-name
2、環境變數:在所有的子程序中使用
a) 定義環境變數 格式: export variable-name=value (與本地變數的定義相比,多了乙個export關鍵字)
b) 顯示環境變數 格式: env (本地變數的顯示使用set,環境變數的顯示使用env)
c) 清除環境變數 格式:unset variable-name (用法與本地變數相同,都使用unset)
二、使用者登入後載入profile和bashrc的流程:
1) /etc/profile-------->/etc/profile.d/*.sh
2) $home/.bash_profile-------->$home/.bashrc---------->/etc/bashrc
說明:
1) bash首先執行/etc/profile指令碼,/etc/profile指令碼先依次執行/etc/profile.d/*.sh
2) 隨後bash會執行使用者主目錄下的.bash_profile指令碼,.bash_profile指令碼會執行使用者主目錄下的.bashrc指令碼, 而.bashrc指令碼會執行/etc/bashrc指令碼
至此,所有的環境變數和初始化設定都已經載入完成。
bash隨後呼叫terminfo和inputrc,完成終端屬性和鍵盤對映的設定.
其中path這個變數特殊說明一下:
如果是超級使用者登入,在沒有執行/etc/profile之前,path已經設定了下面的路徑: /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
如果是普通使用者,path在/etc/profile執行之前設定了以下的路徑: /usr/local/bin:/bin:/usr/bin
這裡要注意的是:在使用者切換並載入變數,例如su -,這時,如果使用者自己切換自己,比如root使用者再用su - root切換的話,載入的path和上面的不一樣。準確的說,是不總是一樣.所以,在/etc/profile指令碼中,做了如下的配置:
if [ `id -u` = 0 ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi 如果是超級使用者登入,在/etc/profile.d/krb5.sh指令碼中,在path變數搜尋路徑的最前面增加/usr/kerberos/sbin:/usr/kerberos/bin
如果是普通使用者登入,在/etc/profile.d/krb5.sh指令碼中,在path變數搜尋路徑的最前面增加/usr/kerberos/bin
在/etc/profile指令碼中,會在path變數的最後增加/usr/x11r6/bin目錄
在$home/.bash_profile中,會在path變數的最後增加$home/bin目錄
以root使用者為例,最終的path會是這樣(沒有其它自定義的基礎上)
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/x11r6/bin:/root/bin
以alice使用者(普通使用者)為例
/usr/kerberos/bin:/usr/bin:/bin:/usr/x11r6/bin:/home/alice/bin
~/.bash_profile 使用者登入時被讀取,其中包含的命令被執行
~/.bashrc 啟動新的shell時被讀取,並執行
~/.bash_logout shell 登入退出時被讀取
linux環境變數(二)
環境變數在linux系統中的用途很多。之前我們已經知道如何修改系統環境變數,也知道了如何建立自己的環境變數。接下來的問題是樣讓環境變數的作用持久化。在你進入linux系統啟動乙個bash shell時,預設情況下bash會在幾個檔案中找命令。這些 檔案叫作啟動檔案或者環境檔案。bash檢查的啟動檔案...
linux環境程式設計 環境變數 列印環境變數
在shell程式設計主題中,我們已經大致的介紹過 環境變數和本地變數啦 我們今天來具體的介紹介紹,那環境變數到底是什麼呢?是我 一.環境變數含義 特徵 環境變數是指 作業系統中用來指定作業系統執行環境的一下引數 1 特徵 字串 有統一的格式 名 值 值 值用來描述程序的環境資訊 2 使用形式 與命令...
linux環境變數
初次學習lliux對環境變數的知識甚是不解決,特花費乙個上午的時間總結了一下,可以說是全面!如各位有更加詳細的見解不妨告知!定製環境變數 環境變數是和shell緊密相關的,使用者登入系統後就啟動了乙個shell。對於linux來說一般是bash,但也可以重新設定或切換到其它的 shell。環境變數是...