日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

漫談UNIX的文件系統(tǒng)( 三 )


因?yàn)?man 頁(yè)面可能像可執(zhí)行文件那樣存放于許多不同的地方,所以 man 程序支持與 PATH 工作方式相同的環(huán)境變量 MANPATH 。要在多個(gè)位置搜索一個(gè)特定的頁(yè)面,可以將 MANPATH 定義為一系列 man 頁(yè)面目錄:
MANPATH="/usr/man"
MANPATH="/usr/local/man:$MANPATH"
MANPATH="/usr/local/mysql/man:$MANPATH
MANPATH="$HOME/man:$MANPATH"
export MANPATH
在該示例中,首先 搜索 $HOME/man(它在最左邊,或者最前面),隨后是 /usr/local/mysql/man,依此類推 。順便說一下,可以將上面的前四個(gè)命令簡(jiǎn)化為下面的語(yǔ)句:
MANPATH="/usr/man:/usr/local/man:
/usr/local/mysql/man:$HOME/man"
然而,將附加的目錄隔離開來(lái),將允許您快速地對(duì)條目進(jìn)行重新排序,并輕松地添加新的目錄 。而且,如果存在許多路徑,編輯后面的 MANPATH(通過擴(kuò)展 PATH)變量將變得使人乏味 。
包含文件
包含文件(或者頭文件)定義了在操作系統(tǒng)中或特定的庫(kù)中使用的常量、宏以及其他結(jié)構(gòu) 。不需要重新定義一個(gè)特定的結(jié)構(gòu),您只需要將頭文件“包含在您的代碼(代碼重用的一種簡(jiǎn)單形式)中,并按照頭文件中的規(guī)范編寫代碼 。(man 中的第 2 部分和第 3 部分就專門用于這樣的規(guī)范;例如,可以嘗試 man 2 signal 。)
與 bin 和 lib 類似,include 是一個(gè)常見的目錄名 。如果一個(gè)包提供了開發(fā)工具包,并且您已經(jīng)將這個(gè)包安裝到了它自己的根目錄,那么可以在 include 子目錄中找到相應(yīng)的頭文件 。
或者,如果您已經(jīng)將包安裝到了公共的 /usr/local/{bin、lib、include} 目錄中,那么可以在 /usr/local/include 中根據(jù)這個(gè)包進(jìn)行命名的子目錄中找到包的頭文件 。這是將所有的內(nèi)容保存到一個(gè)公共地方的例外情況 。為什么呢?頭文件的命名不是唯一的,所以將所有的內(nèi)容安裝到一個(gè)地方將會(huì)導(dǎo)致沖突,一個(gè)包有可能覆蓋另一個(gè)包的頭文件 。
如果您從源代碼構(gòu)建應(yīng)用程序(您將在后面的部分中對(duì)其進(jìn)行深入研究),并且頭文件位于一個(gè)非標(biāo)準(zhǔn)的位置,那么您可能需要在編譯器命令中添加 -I 選項(xiàng) 。作為一個(gè)示例,如果您的 ImageMagick 頭文件位于 /opt/include/magick 中,添加 -I/opt/include/magick 作為編譯器的開關(guān) 。
非常深入地了解它
即將結(jié)束今天的 Unix 旅行 ?,F(xiàn)在,您可以更容易地穿越 UNIX 的小路和背街了 。如果您迷路了,只需要說“家,家,家(不要被 獵戶星座 所欺騙)或者輸入 cd 即可 。請(qǐng)記住,您還可以使用 find 和 locate 來(lái)查找大多數(shù)文件,包括可執(zhí)行文件、庫(kù)和包含文件 。
下午好,女士們、先生們 。下次旅行將在 30 天后啟程 。
附錄 A:選擇一個(gè)標(biāo)準(zhǔn),任何標(biāo)準(zhǔn)
您的 UNIX 操作系統(tǒng)附帶的軟件位于文件系統(tǒng)中適當(dāng)?shù)奈恢茫赡艽鎯?chǔ)在 /bin 或者 /lib 中的),而本地添加的軟件則可能位于許多不同的位置 。某些系統(tǒng)管理員將本地軟件放在 /usr/local 中,而其他的系統(tǒng)管理員則使用 /opt 或者“optional,因?yàn)檫\(yùn)行系統(tǒng)并不需要該軟件 。而且,某些管理員會(huì)轉(zhuǎn)儲(chǔ) /usr/local/bin 或 /opt/bin 中所有的可執(zhí)行文件、/usr/local/lib 或 /opt/lib 中所有的庫(kù),等等 。
另一種方法(這是我更喜歡的范例)是為每一個(gè)本地添加的包創(chuàng)建一個(gè)根目錄,特別是在這個(gè)包很大的情況下 。例如,我將 MySQL V5 安裝到 /usr/local/mysql5.0,將 Apache V2.2 安裝到 /usr/local/apache2.2 。每個(gè)包的安裝程序都會(huì)在包的根目錄中創(chuàng)建它自己的 bin、lib 和 man 目錄 。
這種方法有一個(gè)缺點(diǎn),每個(gè)最終用戶必須向他或她的 PATH 環(huán)境變量中添加許多 bin 目錄 。并且當(dāng)這一需求并不是特別復(fù)雜時(shí),通過在系統(tǒng)范圍的 Shell 啟動(dòng)文件中擴(kuò)展缺省的 PATH 設(shè)置,就可以解決這個(gè)問題 。例如,Bash 系統(tǒng)范圍啟動(dòng)腳本 /etc/profile,可能包含:

推薦閱讀