日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

linux 環(huán)境變量

 tinaroad 2006-09-18
 

linux 環(huán)境變量- -

                                      

系統(tǒng)變量是一個(gè)有名稱的物件,包含一個(gè)或多個(gè)程式要用的資訊。許多使用者(特別是 Linux 新手)覺(jué)得這有一些古怪而且難以管理。這想法有一些錯(cuò)誤:使用者可以用系統(tǒng)變量輕鬆的改變一個(gè)或多個(gè)程式設(shè)定。

重要的範(fàn)例

下面的表格顯示許多 Linux 使用的變量以及它們的用途。範(fàn)例在表格後面展示。

變量 說(shuō)明
PATH 這個(gè)變量包含用冒號(hào)分隔的目錄列表,讓系統(tǒng)尋找可執(zhí)行檔。如果您輸入一個(gè)可執(zhí)行檔 (例如 ls,rc-update 或 emerge)但是這個(gè)檔案不在列表中的 目錄,您的系統(tǒng)不會(huì)執(zhí)行它(除非您輸入完整的路徑,如 /bin/ls)。 
ROOTPATH 這個(gè)變量和 PATH 有相同功能,但是這裡面包含的目錄是根使用者數(shù)入指令時(shí) 才會(huì)尋找。 
LDPATH 這個(gè)變量包含以冒號(hào)分隔的目錄列表,讓動(dòng)態(tài)連結(jié)檔在裡面搜尋函式庫(kù)。 
MANPATH 這個(gè)變量包含以冒號(hào)分隔的目錄列表,讓 man 指令搜尋手冊(cè)頁(yè)。 
INFODIR 這個(gè)變量包含以冒號(hào)分隔的目錄列表,讓 info 搜尋資訊頁(yè)。 
PAGER 這個(gè)變量包含顯示檔案內(nèi)容的程式路徑(例如 less 或 more)。 
EDITOR 這個(gè)變量包含編輯的程式路徑(例如 nano 或 vi)。 
KDEDIRS 這個(gè)變量包含以冒號(hào)分隔的目錄列表,設(shè)定 KDE 的主要路徑。 
CLASSPATH 這個(gè)變量包含以冒號(hào)分隔的目錄列表,設(shè)定 Java 程式的路徑。 
CONFIG_PROTECT 這個(gè)變量包含以空白分隔的目錄列表,這些目錄在 Portage 更新時(shí)需要被保護(hù)。 
CONFIG_PROTECT_MASK 這個(gè)變量包含以空白分隔的目錄列表,這些目錄更新 Portage 時(shí)不要被保護(hù)。 

底下是所有的變量的設(shè)定範(fàn)例:

原始碼一覽表 1: Example definitions
 
PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
MANPATH="/usr/share/man:/usr/local/share/man"
INFODIR="/usr/share/info:/usr/local/share/info"
PAGER="/usr/bin/less"
EDITOR="/usr/bin/vim"
KDEDIRS="/usr"
CLASSPATH="/opt/blackdown-jre-1.4.1/lib/rt.jar:."
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf \
                /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ \
                /usr/share/texmf/tex/platex/config/ /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf

 

5.b. 定義全域變量

/etc/env.d 目錄

為了要集中管理這些變量的設(shè)定,Gentoo 使用 /etc/env.d 目錄。在目錄中您會(huì)發(fā)現(xiàn)許多檔案,例如 00basic,05gcc 等。這裡面包含檔案名稱中所提到的程式需要用的變量。

例如,當(dāng)您安裝 gcc 後,ebulid 會(huì)建立一個(gè)叫做 05gcc 的檔案,包含下面的變量設(shè)定:

原始碼一覽表 2: /etc/env.d/05gcc
 
PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man"
INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info"
CC="gcc"
CXX="g++"
LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"

 

其他的 Linux 套件會(huì)告訴您在 /etc/profile 或其他地方新增這些變量。 Gentoo 則讓您很容易(對(duì) Portage 也是)去管理這些變量而不用注意其他設(shè)定系統(tǒng)變量的檔案。

舉例來(lái)說(shuō),當(dāng) gcc 更新了之後,/etc/env.d/05gcc 也會(huì)同時(shí)被更新而使用者不必做任何事。

這不僅對(duì) Portage 有好處,對(duì)使用者也是。您或許偶爾會(huì)被要求設(shè)定一些系統(tǒng)變量。拿 http_proxy 做例子。您不用弄亂 /etc/profile,只要建立一個(gè)檔案( /etc/env.d/99local )然後在裡面輸入設(shè)定:

原始碼一覽表 3: /etc/env.d/99local
 
http_proxy="proxy.server.com:8080"

 

藉著將您自己的變量設(shè)定放到這個(gè)檔案中,您可以很快找到哪些變量是您自己設(shè)定的。

env-update 指令稿

在 /etc/env.d 中的數(shù)個(gè)檔案同時(shí)定義了 PATH 變量。這並沒(méi)有錯(cuò):當(dāng)您執(zhí)行 env-update,他會(huì)把數(shù)個(gè)設(shè)定同時(shí)加到系統(tǒng)設(shè)定中,因此讓軟體套件(或使用者)加入他們自己的設(shè)定而不會(huì)干擾已經(jīng)存在的設(shè)定。

env-update 指令稿將會(huì)以 /etc/env.d 中的檔案名稱以字母順序依序加入系統(tǒng)設(shè)定中。這就是為什么這裡面的許多檔案以數(shù)字開(kāi)頭。

原始碼一覽表 4: env-update 的新增順序
 
         00basic        99kde-env       99local
     +-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"

 

當(dāng)您執(zhí)行 env-update,他會(huì)建立所有的系統(tǒng)變量然後寫(xiě)入 /etc/profile.env 中(這檔案被 /etc/profile 使用)。他也會(huì)從 LDPATH 讀取資訊然後建立 /etc/ld.so.conf,之後,他會(huì)執(zhí)行 ldconfig 重新建立動(dòng)態(tài)連結(jié)使用的 /etc/ld.so.cache 檔案。

如果您希望 env-update 在您執(zhí)行它後立刻作用,執(zhí)行下面的指令來(lái)更新。自行安裝 Gentoo 的使用者可能會(huì)記得安裝過(guò)程中執(zhí)行過(guò):

原始碼一覽表 5: 更新環(huán)境變量
 
# env-update && source /etc/profile

 

5.c. 定義局部變量

使用者自行設(shè)定

您或許不想要定義全域變量。例如您可能要加入 /home/my_user/bin 到 PATH 變量中,但是您不想要其他使用者在他們的 PATH 也有這個(gè)設(shè)定。如果您想要定義區(qū)域變量,您可以加到 ~/.bashrc 或 ~/.bash_profile:

原始碼一覽表 6: 在 ~/.bashrc 中額外增加局部 PATH 設(shè)定
 
PATH="${PATH}:/home/my_user/bin"

 

當(dāng)您重新登入後,您的 PATH 變量就會(huì)更新了。

有期限的設(shè)定

有的時(shí)候需要更嚴(yán)格的定義。例如您可能需要從您剛剛建立的暫時(shí)目錄執(zhí)行程式,但您不想輸入完整的路徑或是編輯 ~/.bashrc 只為了在這一小段時(shí)間使用。

在這種情況下,您只要使用 export 指令設(shè)定 PATH 變量。只要您不登出, PATH 將會(huì)使用目前暫時(shí)的設(shè)定。

原始碼一覽表 7: 設(shè)定有期限的變量
 
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多