佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 深入理解linux系統(tǒng)的目錄結(jié)構(gòu)(總結(jié)的非常詳細(xì))

深入理解linux系統(tǒng)的目錄結(jié)構(gòu)(總結(jié)的非常詳細(xì))

熱門(mén)標(biāo)簽:家政服務(wù)網(wǎng)絡(luò) 解決方案 硅谷的囚徒呼叫中心 美團(tuán) 服務(wù)器配置 電話機(jī)器人搭建 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 外呼系統(tǒng)

當(dāng)在使用Linux的時(shí)候,如果您通過(guò)ls –l / 就會(huì)發(fā)現(xiàn),在/下包涵很多的目錄,比如etc、usr、var、bin ... ... 等目錄,而在這些目錄中,我們進(jìn)去看看,發(fā)現(xiàn)也有很多的目錄或文件。文件系統(tǒng)在Linux下看上去就象樹(shù)形結(jié)構(gòu),所以我們可以把文件系統(tǒng)的結(jié)構(gòu)形象的稱為 樹(shù)形結(jié)構(gòu)。

文件系統(tǒng)的是用來(lái)組織和排列文件存取的,所以她是可見(jiàn)的,在Linux中,我們可以通過(guò)ls等工具來(lái)查看其結(jié)構(gòu),在Linux系統(tǒng)中,我們見(jiàn)到的都是樹(shù)形結(jié)構(gòu);比如操作系統(tǒng)安裝在一個(gè)文件系統(tǒng)中,他表現(xiàn)為由/ 起始的樹(shù)形結(jié)構(gòu)。linux文件系統(tǒng)的最頂端是/,我們稱/為L(zhǎng)inux的root,也就是 Linux操作系統(tǒng)的文件系統(tǒng)。Linux的文件系統(tǒng)的入口就是/,所有的目錄、文件、設(shè)備都在/之下,/就是Linux文件系統(tǒng)的組織者,也是最上級(jí)的領(lǐng)導(dǎo)者。

由于linux是開(kāi)放源代碼,各大公司和團(tuán)體根據(jù)linux的核心代碼做各自的操作,編程。這樣就造成在根下的目錄的不同。這樣就造成個(gè)人不能使用他人的linux系統(tǒng)的PC。因?yàn)槟愀静恢酪恍┗镜呐渲?,文件在哪里。。。這就造成了混亂。這就是FHS(Filesystem Hierarchy Standard )機(jī)構(gòu)誕生的原因。該機(jī)構(gòu)是linux愛(ài)好者自發(fā)的組成的一個(gè)團(tuán)體,主要是是對(duì)linux做一些基本的要求,不至于是操作者換一臺(tái)主機(jī)就成了linux的‘文盲’。

根據(jù)FHS(http://www.pathname.com/fhs/)的官方文件指出, 他們的主要目的是希望讓使用者可以了解到已安裝軟件通常放置于那個(gè)目錄下, 所以他們希望獨(dú)立的軟件開(kāi)發(fā)商、操作系統(tǒng)制作者、以及想要維護(hù)系統(tǒng)的用戶,都能夠遵循FHS的標(biāo)準(zhǔn)。 也就是說(shuō),F(xiàn)HS的重點(diǎn)在于規(guī)范每個(gè)特定的目錄下應(yīng)該要放置什么樣子的數(shù)據(jù)而已。 這樣做好處非常多,因?yàn)長(zhǎng)inux操作系統(tǒng)就能夠在既有的面貌下(目錄架構(gòu)不變)發(fā)展出開(kāi)發(fā)者想要的獨(dú)特風(fēng)格。

事實(shí)上,F(xiàn)HS是根據(jù)過(guò)去的經(jīng)驗(yàn)一直再持續(xù)的改版的,F(xiàn)HS依據(jù)文件系統(tǒng)使用的頻繁與否與是否允許使用者隨意更動(dòng), 而將目錄定義成為四種交互作用的形態(tài),用表格來(lái)說(shuō)有點(diǎn)像底下這樣:

可分享的(shareable)

不可分享的(unshareable)

不變的(static)

/usr (軟件放置處)

/etc (配置文件)

/opt (第三方協(xié)力軟件)

/boot (開(kāi)機(jī)與核心檔)

可變動(dòng)的(variable)

/var/mail (使用者郵件信箱)

/var/run (程序相關(guān))

/var/spool/news (新聞組)

/var/lock (程序相關(guān))

四中類型:

1. 可分享的:

可以分享給其他系統(tǒng)掛載使用的目錄,所以包括執(zhí)行文件與用戶的郵件等數(shù)據(jù), 是能夠分享給網(wǎng)絡(luò)上其他主機(jī)掛載用的目錄;

2. 不可分享的:

自己機(jī)器上面運(yùn)作的裝置文件或者是與程序有關(guān)的socket文件等, 由于僅與自身機(jī)器有關(guān),所以當(dāng)然就不適合分享給其他主機(jī)了。

3. 不變的:

有些數(shù)據(jù)是不會(huì)經(jīng)常變動(dòng)的,跟隨著distribution而不變動(dòng)。 例如函式庫(kù)、文件說(shuō)明文件、系統(tǒng)管理員所管理的主機(jī)服務(wù)配置文件等等;

4. 可變動(dòng)的:

經(jīng)常改變的數(shù)據(jù),例如登錄文件、一般用戶可自行收受的新聞組等。

事實(shí)上,F(xiàn)HS針對(duì)目錄樹(shù)架構(gòu)僅定義出三層目錄底下應(yīng)該放置什么數(shù)據(jù)而已,分別是底下這三個(gè)目錄的定義:

/ (root, 根目錄):與開(kāi)機(jī)系統(tǒng)有關(guān);

/usr (unix software resource):與軟件安裝/執(zhí)行有關(guān);

/var (variable):與系統(tǒng)運(yùn)作過(guò)程有關(guān)。

一. 根目錄 (/) 的意義與內(nèi)容:

根目錄是整個(gè)系統(tǒng)最重要的一個(gè)目錄,因?yàn)椴坏械哪夸浂际怯筛夸浹苌鰜?lái)的, 同時(shí)根目錄也與開(kāi)機(jī)/還原/系統(tǒng)修復(fù)等動(dòng)作有關(guān)。 由于系統(tǒng)開(kāi)機(jī)時(shí)需要特定的開(kāi)機(jī)軟件、核心文件、開(kāi)機(jī)所需程序、 函式庫(kù)等等文件數(shù)據(jù),若系統(tǒng)出現(xiàn)錯(cuò)誤時(shí),根目錄也必須要包含有能夠修復(fù)文件系統(tǒng)的程序才行。 因?yàn)楦夸浭沁@么的重要,所以在FHS的要求方面,他希望根目錄不要放在非常大的分區(qū), 因?yàn)樵酱蟮姆謪^(qū)內(nèi)你會(huì)放入越多的數(shù)據(jù),如此一來(lái)根目錄所在分區(qū)就可能會(huì)有較多發(fā)生錯(cuò)誤的機(jī)會(huì)。

因此FHS標(biāo)準(zhǔn)建議:根目錄(/)所在分區(qū)應(yīng)該越小越好, 且應(yīng)用程序所安裝的軟件最好不要與根目錄放在同一個(gè)分區(qū)內(nèi),保持根目錄越小越好。 如此不但效能較佳,根目錄所在的文件系統(tǒng)也較不容易發(fā)生問(wèn)題。說(shuō)白了,就是根目錄和Windows的C盤(pán)一個(gè)樣。

根據(jù)以上原因,F(xiàn)HS認(rèn)為根目錄(/)下應(yīng)該包含如下子目錄:

目錄

應(yīng)放置檔案內(nèi)容

/bin

系統(tǒng)有很多放置執(zhí)行檔的目錄,但/bin比較特殊。因?yàn)?bin放置的是在單人維護(hù)模式下還能夠被操作的指令。在/bin底下的指令可以被root與一般帳號(hào)所使用,主要有:cat,chmod(修改權(quán)限), chown, date, mv, mkdir, cp, bash等等常用的指令。

/boot

主要放置開(kāi)機(jī)會(huì)使用到的檔案,包括Linux核心檔案以及開(kāi)機(jī)選單與開(kāi)機(jī)所需設(shè)定檔等等。Linux kernel常用的檔名為:vmlinuz ,如果使用的是grub這個(gè)開(kāi)機(jī)管理程式,則還會(huì)存在/boot/grub/這個(gè)目錄。

/dev

在Linux系統(tǒng)上,任何裝置與周邊設(shè)備都是以檔案的型態(tài)存在于這個(gè)目錄當(dāng)中。 只要通過(guò)存取這個(gè)目錄下的某個(gè)檔案,就等于存取某個(gè)裝置。比要重要的檔案有/dev/null, /dev/zero, /dev/tty , /dev/lp*, / dev/hd*, /dev/sd*等等

/etc

系統(tǒng)主要的設(shè)定檔幾乎都放置在這個(gè)目錄內(nèi),例如人員的帳號(hào)密碼檔、各種服務(wù)的啟始檔等等。 一般來(lái)說(shuō),這個(gè)目錄下的各檔案屬性是可以讓一般使用者查閱的,但是只有root有權(quán)力修改。 FHS建議不要放置可執(zhí)行檔(binary)在這個(gè)目錄中。 比較重要的檔案有:/etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/等等。 另外,其下重要的目錄有:/etc/init.d/ :所有服務(wù)的預(yù)設(shè)啟動(dòng)script都是放在這里的,例如要啟動(dòng)或者關(guān)閉iptables的話: /etc/init.d/iptables start、/etc/init.d/ iptables stop

/etc/xinetd.d/ :這就是所謂的super daemon管理的各項(xiàng)服務(wù)的設(shè)定檔目錄。

/etc/X11/ :與X Window有關(guān)的各種設(shè)定檔都在這里,尤其是xorg.conf或XF86Config這兩個(gè)X Server的設(shè)定檔。

/home

這是系統(tǒng)預(yù)設(shè)的使用者家目錄(home directory)。 在你新增一個(gè)一般使用者帳號(hào)時(shí),預(yù)設(shè)的使用者家目錄都會(huì)規(guī)范到這里來(lái)。比較重要的是,家目錄有兩種代號(hào): 
~ :代表當(dāng)前使用者的家目錄,而 ~guest:則代表用戶名為guest的家目錄。

/lib

系統(tǒng)的函式庫(kù)非常的多,而/lib放置的則是在開(kāi)機(jī)時(shí)會(huì)用到的函式庫(kù),以及在/bin或/sbin底下的指令會(huì)呼叫的函式庫(kù)而已 。 什么是函式庫(kù)呢?妳可以將他想成是外掛,某些指令必須要有這些外掛才能夠順利完成程式的執(zhí)行之意。 尤其重要的是/lib/modules/這個(gè)目錄,因?yàn)樵撃夸洉?huì)放置核心相關(guān)的模組(驅(qū)動(dòng)程式)。

/media

media是媒體的英文,顧名思義,這個(gè)/media底下放置的就是可移除的裝置。 包括軟碟、光碟、DVD等等裝置都暫時(shí)掛載于此。 常見(jiàn)的檔名有:/media/floppy, /media/cdrom等等。

/mnt

如果妳想要暫時(shí)掛載某些額外的裝置,一般建議妳可以放置到這個(gè)目錄中。在古早時(shí)候,這個(gè)目錄的用途與/media相同啦。 只是有了/media之后,這個(gè)目錄就用來(lái)暫時(shí)掛載用了。

/opt

這個(gè)是給第三方協(xié)力軟體放置的目錄 。 什么是第三方協(xié)力軟體?。颗e例來(lái)說(shuō),KDE這個(gè)桌面管理系統(tǒng)是一個(gè)獨(dú)立的計(jì)畫(huà),不過(guò)他可以安裝到Linux系統(tǒng)中,因此KDE的軟體就建議放置到此目錄下了。 另外,如果妳想要自行安裝額外的軟體(非原本的distribution提供的),那么也能夠?qū)⒛愕能涹w安裝到這里來(lái)。 不過(guò),以前的Linux系統(tǒng)中,我們還是習(xí)慣放置在/usr/local目錄下。

/root

系統(tǒng)管理員(root)的家目錄。 之所以放在這里,是因?yàn)槿绻M(jìn)入單人維護(hù)模式而僅掛載根目錄時(shí),該目錄就能夠擁有root的家目錄,所以我們會(huì)希望root的家目錄與根目錄放置在同一個(gè)分區(qū)中。

/sbin

Linux有非常多指令是用來(lái)設(shè)定系統(tǒng)環(huán)境的,這些指令只有root才能夠利用來(lái)設(shè)定系統(tǒng),其他使用者最多只能用來(lái)查詢而已。放在/sbin底下的為開(kāi)機(jī)過(guò)程中所需要的,里面包括了開(kāi)機(jī)、修復(fù)、還原系統(tǒng)所需要的指令。至于某些伺服器軟體程式,一般則放置到/usr/sbin/當(dāng)中。至于本機(jī)自行安裝的軟體所產(chǎn)生的系統(tǒng)執(zhí)行檔(system binary),則放置到/usr/local/sbin/當(dāng)中了。常見(jiàn)的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。

/srv

srv可以視為service的縮寫(xiě),是一些網(wǎng)路服務(wù)啟動(dòng)之后,這些服務(wù)所需要取用的資料目錄。 常見(jiàn)的服務(wù)例如WWW, FTP等等。 舉例來(lái)說(shuō),WWW伺服器需要的網(wǎng)頁(yè)資料就可以放置在/srv/www/里面。呵呵,看來(lái)平時(shí)我們編寫(xiě)的代碼應(yīng)該放到這里了。

/tmp

這是讓一般使用者或者是正在執(zhí)行的程序暫時(shí)放置檔案的地方。這個(gè)目錄是任何人都能夠存取的,所以你需要定期的清理一下。當(dāng)然,重要資料不可放置在此目錄啊。 因?yàn)镕HS甚至建議在開(kāi)機(jī)時(shí),應(yīng)該要將/tmp下的資料都刪除。


事實(shí)上FHS針對(duì)根目錄所定義的標(biāo)準(zhǔn)就僅限于上表,不過(guò)仍舊有些目錄也需要我們了解一下,具體如下:

目錄

應(yīng)放置文件內(nèi)容

/lost+found

這個(gè)目錄是使用標(biāo)準(zhǔn)的ext2/ext3檔案系統(tǒng)格式才會(huì)產(chǎn)生的一個(gè)目錄,目的在于當(dāng)檔案系統(tǒng)發(fā)生錯(cuò)誤時(shí),將一些遺失的片段放置到這個(gè)目錄下。 這個(gè)目錄通常會(huì)在分割槽的最頂層存在,例如你加裝一個(gè)硬盤(pán)于/disk中,那在這個(gè)系統(tǒng)下就會(huì)自動(dòng)產(chǎn)生一個(gè)這樣的目錄/disk/lost+found

/proc

這個(gè)目錄本身是一個(gè)虛擬文件系統(tǒng)(virtual filesystem)喔。 他放置的資料都是在內(nèi)存當(dāng)中,例如系統(tǒng)核心、行程資訊(process)(是進(jìn)程嗎?)、周邊裝置的狀態(tài)及網(wǎng)絡(luò)狀態(tài)等等。因?yàn)檫@個(gè)目錄下的資料都是在記憶體(內(nèi)存)當(dāng)中,所以本身不占任何硬盤(pán)空間。比較重要的檔案(目錄)例如: /proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/*等等。呵呵,是虛擬內(nèi)存嗎[guest]?

/sys

這個(gè)目錄其實(shí)跟/proc非常類似,也是一個(gè)虛擬的檔案系統(tǒng),主要也是記錄與核心相關(guān)的資訊。 包括目前已載入的核心模組與核心偵測(cè)到的硬體裝置資訊等等。 這個(gè)目錄同樣不占硬盤(pán)容量。


除了這些目錄的內(nèi)容之外,另外要注意的是,因?yàn)楦夸浥c開(kāi)機(jī)有關(guān),開(kāi)機(jī)過(guò)程中僅有根目錄會(huì)被掛載, 其他分區(qū)則是在開(kāi)機(jī)完成之后才會(huì)持續(xù)的進(jìn)行掛載的行為。就是因?yàn)槿绱?,因此根目錄下與開(kāi)機(jī)過(guò)程有關(guān)的目錄, 就不能夠與根目錄放到不同的分區(qū)去。那哪些目錄不可與根目錄分開(kāi)呢?有底下這些:

/etc:配置文件

/bin:重要執(zhí)行檔

/dev:所需要的裝置文件

/lib:執(zhí)行檔所需的函式庫(kù)與核心所需的模塊

/sbin:重要的系統(tǒng)執(zhí)行文件

這五個(gè)目錄千萬(wàn)不可與根目錄分開(kāi)在不同的分區(qū)。請(qǐng)背下來(lái)啊。 

二. /usr 的意義與內(nèi)容:

依據(jù)FHS的基本定義,/usr里面放置的數(shù)據(jù)屬于可分享的與不可變動(dòng)的(shareable, static), 如果你知道如何透過(guò)網(wǎng)絡(luò)進(jìn)行分區(qū)的掛載(例如在服務(wù)器篇會(huì)談到的NFS服務(wù)器),那么/usr確實(shí)可以分享給局域網(wǎng)絡(luò)內(nèi)的其他主機(jī)來(lái)使用喔。

/usr不是user的縮寫(xiě),其實(shí)usr是Unix Software Resource的縮寫(xiě), 也就是Unix操作系統(tǒng)軟件資源所放置的目錄,而不是用戶的數(shù)據(jù)啦。這點(diǎn)要注意。 FHS建議所有軟件開(kāi)發(fā)者,應(yīng)該將他們的數(shù)據(jù)合理的分別放置到這個(gè)目錄下的次目錄,而不要自行建立該軟件自己獨(dú)立的目錄。

因?yàn)槭撬邢到y(tǒng)默認(rèn)的軟件(distribution發(fā)布者提供的軟件)都會(huì)放置到/usr底下,因此這個(gè)目錄有點(diǎn)類似Windows 系統(tǒng)的C:\Windows\&;+ C:\Program files\這兩個(gè)目錄的綜合體,系統(tǒng)剛安裝完畢時(shí),這個(gè)目錄會(huì)占用最多的硬盤(pán)容量。 一般來(lái)說(shuō),/usr的次目錄建議有底下這些:

目錄

應(yīng)放置文件內(nèi)容

/usr/X11R6/ 

為X Window System重要數(shù)據(jù)所放置的目錄,之所以取名為X11R6是因?yàn)樽詈蟮腦版本為第11版,且該版的第6次釋出之意。 

/usr/bin/ 

絕大部分的用戶可使用指令都放在這里。請(qǐng)注意到他與/bin的不同之處。(是否與開(kāi)機(jī)過(guò)程有關(guān)) 

/usr/include/ 

c/c++等程序語(yǔ)言的檔頭(header)與包含檔(include)放置處,當(dāng)我們以tarball方式 (*.tar.gz 的方式安裝軟件)安裝某些數(shù)據(jù)時(shí),會(huì)使用到里頭的許多包含檔。 

/usr/lib/ 

包含各應(yīng)用軟件的函式庫(kù)、目標(biāo)文件(object file),以及不被一般使用者慣用的執(zhí)行檔或腳本(script)。 某些軟件會(huì)提供一些特殊的指令來(lái)進(jìn)行服務(wù)器的設(shè)定,這些指令也不會(huì)經(jīng)常被系統(tǒng)管理員操作, 那就會(huì)被擺放到這個(gè)目錄下啦。要注意的是,如果你使用的是X86_64的Linux系統(tǒng), 那可能會(huì)有/usr/lib64/目錄產(chǎn)生 

/usr/local/ 

統(tǒng)管理員在本機(jī)自行安裝自己下載的軟件(非distribution默認(rèn)提供者),建議安裝到此目錄, 這樣會(huì)比較便于管理。舉例來(lái)說(shuō),你的distribution提供的軟件較舊,你想安裝較新的軟件但又不想移除舊版, 此時(shí)你可以將新版軟件安裝于/usr/local/目錄下,可與原先的舊版軟件有分別啦。 你可以自行到/usr/local去看看,該目錄下也是具有bin, etc, include, lib...的次目錄 

/usr/sbin/ 

非系統(tǒng)正常運(yùn)作所需要的系統(tǒng)指令。最常見(jiàn)的就是某些網(wǎng)絡(luò)服務(wù)器軟件的服務(wù)指令(daemon) 

/usr/share/ 

放置共享文件的地方,在這個(gè)目錄下放置的數(shù)據(jù)幾乎是不分硬件架構(gòu)均可讀取的數(shù)據(jù), 因?yàn)閹缀醵际俏谋疚募?。在此目錄下常?jiàn)的還有這些次目錄:/usr/share/man:聯(lián)機(jī)幫助文件

/usr/share/doc:軟件雜項(xiàng)的文件說(shuō)明

/usr/share/zoneinfo:與時(shí)區(qū)有關(guān)的時(shí)區(qū)文件

/usr/src/ 

一般原始碼建議放置到這里,src有source的意思。至于核心原始碼則建議放置到/usr/src/linux/目錄下。 

三.  /var 的意義與內(nèi)容:

如果/usr是安裝時(shí)會(huì)占用較大硬盤(pán)容量的目錄,那么/var就是在系統(tǒng)運(yùn)作后才會(huì)漸漸占用硬盤(pán)容量的目錄。 因?yàn)?var目錄主要針對(duì)常態(tài)性變動(dòng)的文件,包括緩存(cache)、登錄檔(log file)以及某些軟件運(yùn)作所產(chǎn)生的文件, 包括程序文件(lock file, run file),或者例如MySQL數(shù)據(jù)庫(kù)的文件等等。常見(jiàn)的次目錄有:

目錄

應(yīng)放置文件內(nèi)容

/var/cache/

應(yīng)用程序本身運(yùn)作過(guò)程中會(huì)產(chǎn)生的一些暫存檔

/var/lib/

程序本身執(zhí)行的過(guò)程中,需要使用到的數(shù)據(jù)文件放置的目錄。在此目錄下各自的軟件應(yīng)該要有各自的目錄。 舉例來(lái)說(shuō),MySQL的數(shù)據(jù)庫(kù)放置到/var/lib/mysql/而rpm的數(shù)據(jù)庫(kù)則放到/var/lib/rpm去

/var/lock/

某些裝置或者是文件資源一次只能被一個(gè)應(yīng)用程序所使用,如果同時(shí)有兩個(gè)程序使用該裝置時(shí), 就可能產(chǎn)生一些錯(cuò)誤的狀況,因此就得要將該裝置上鎖(lock),以確保該裝置只會(huì)給單一軟件所使用。 舉例來(lái)說(shuō),刻錄機(jī)正在刻錄一塊光盤(pán),你想一下,會(huì)不會(huì)有兩個(gè)人同時(shí)在使用一個(gè)刻錄機(jī)燒片? 如果兩個(gè)人同時(shí)刻錄,那片子寫(xiě)入的是誰(shuí)的數(shù)據(jù)?所以當(dāng)?shù)谝粋€(gè)人在刻錄時(shí)該刻錄機(jī)就會(huì)被上鎖, 第二個(gè)人就得要該裝置被解除鎖定(就是前一個(gè)人用完了)才能夠繼續(xù)使用

/var/log/

非常重要。這是登錄文件放置的目錄。里面比較重要的文件如/var/log/messages, /var/log/wtmp(記錄登入者的信息)等。

/var/mail/

放置個(gè)人電子郵件信箱的目錄,不過(guò)這個(gè)目錄也被放置到/var/spool/mail/目錄中,通常這兩個(gè)目錄是互為鏈接文件。

/var/run/

某些程序或者是服務(wù)啟動(dòng)后,會(huì)將他們的PID放置在這個(gè)目錄下

/var/spool/

這個(gè)目錄通常放置一些隊(duì)列數(shù)據(jù),所謂的“隊(duì)列”就是排隊(duì)等待其他程序使用的數(shù)據(jù)。 這些數(shù)據(jù)被使用后通常都會(huì)被刪除。舉例來(lái)說(shuō),系統(tǒng)收到新信會(huì)放置到/var/spool/mail/中, 但使用者收下該信件后該封信原則上就會(huì)被刪除。信件如果暫時(shí)寄不出去會(huì)被放到/var/spool/mqueue/中, 等到被送出后就被刪除。如果是工作排程數(shù)據(jù)(crontab),就會(huì)被放置到/var/spool/cron/目錄中。

由于FHS僅是定義出最上層(/)及次層(/usr, /var)的目錄內(nèi)容應(yīng)該要放置的文件或目錄數(shù)據(jù), 因此,在其他次目錄層級(jí)內(nèi),就可以隨開(kāi)發(fā)者自行來(lái)配置了。

四. 目錄樹(shù)(directory tree) :

在Linux底下,所有的文件與目錄都是由根目錄開(kāi)始的。那是所有目錄與文件的源頭, 然后再一個(gè)一個(gè)的分支下來(lái),因此,我們也稱這種目錄配置方式為:目錄樹(shù)(directory tree), 這個(gè)目錄樹(shù)的主要特性有:

目錄樹(shù)的啟始點(diǎn)為根目錄 (/, root);

每一個(gè)目錄不止能使用本地端的 partition 的文件系統(tǒng),也可以使用網(wǎng)絡(luò)上的 filesystem 。舉例來(lái)說(shuō), 可以利用 Network File System (NFS) 服務(wù)器掛載某特定目錄等。

每一個(gè)文件在此目錄樹(shù)中的文件名(包含完整路徑)都是獨(dú)一無(wú)二的。

如果我們將整個(gè)目錄樹(shù)以圖的方法來(lái)顯示,并且將較為重要的文件數(shù)據(jù)列出來(lái)的話,那么目錄樹(shù)架構(gòu)就如下圖所示:

五. 絕對(duì)路徑與相對(duì)路徑

除了需要特別注意的FHS目錄配置外,在文件名部分我們也要特別注意。因?yàn)楦鶕?jù)檔名寫(xiě)法的不同,也可將所謂的路徑(path)定義為絕對(duì)路徑(absolute)與相對(duì)路徑(relative)。 這兩種文件名/路徑的寫(xiě)法依據(jù)是這樣的:

絕對(duì)路徑:

由根目錄(/)開(kāi)始寫(xiě)起的文件名或目錄名稱, 例如 /home/dmtsai/.bashrc;

相對(duì)路徑:

相對(duì)于目前路徑的文件名寫(xiě)法。 例如 ./home/dmtsai 或 http://www.cnblogs.com/home/dmtsai/ 等等。反正開(kāi)頭不是 / 就屬于相對(duì)路徑的寫(xiě)法

而你必須要了解,相對(duì)路徑是以你當(dāng)前所在路徑的相對(duì)位置來(lái)表示的。舉例來(lái)說(shuō),你目前在 /home 這個(gè)目錄下, 如果想要進(jìn)入 /var/log 這個(gè)目錄時(shí),可以怎么寫(xiě)呢?


復(fù)制代碼
代碼如下:
cd /var/log (absolute)
cd ../var/log (relative)

因?yàn)槟阍?nbsp;/home 底下,所以要回到上一層 (../) 之后,才能繼續(xù)往 /var 來(lái)移動(dòng)的,特別注意這兩個(gè)特殊的目錄:

.  :代表當(dāng)前的目錄,也可以使用 ./ 來(lái)表示;

.. :代表上一層目錄,也可以 ../ 來(lái)代表。

這個(gè) . 與 .. 目錄概念是很重要的,你常常會(huì)看到 cd .. 或 ./command 之類的指令下達(dá)方式, 就是代表上一層與目前所在目錄的工作狀態(tài)。

實(shí)例1:如何先進(jìn)入/var/spool/mail/目錄,再進(jìn)入到/var/spool/cron/目錄內(nèi)?

命令:


復(fù)制代碼
代碼如下:
cd /var/spool/mail
cd ../cron

說(shuō)明:

由于/var/spool/mail與/var/spool/cron是同樣在/var/spool/目錄中。如此就不需要在由根目錄開(kāi)始寫(xiě)起了。這個(gè)相對(duì)路徑是非常有幫助的,尤其對(duì)于某些軟件開(kāi)發(fā)商來(lái)說(shuō)。 一般來(lái)說(shuō),軟件開(kāi)發(fā)商會(huì)將數(shù)據(jù)放置到/usr/local/里面的各相對(duì)目錄。 但如果用戶想要安裝到不同目錄呢?就得要使用相對(duì)路徑。

實(shí)例2:網(wǎng)絡(luò)文件常常提到類似./run.sh之類的數(shù)據(jù),這個(gè)指令的意義為何?

說(shuō)明:

由于指令的執(zhí)行需要變量的支持,若你的執(zhí)行文件放置在本目錄,并且本目錄并非正規(guī)的執(zhí)行文件目錄(/bin, /usr/bin等為正規(guī)),此時(shí)要執(zhí)行指令就得要嚴(yán)格指定該執(zhí)行檔。./代表本目錄的意思,所以./run.sh代表執(zhí)行本目錄下, 名為run.sh的文件。

標(biāo)簽:南昌 邢臺(tái) 防城港 北海 臨沂 撫州 烏蘭察布 韶關(guān)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《深入理解linux系統(tǒng)的目錄結(jié)構(gòu)(總結(jié)的非常詳細(xì))》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    咸丰县| 封开县| 玛沁县| 大名县| 资中县| 苏州市| 中西区| 济阳县| 新化县| 娱乐| 浠水县| 宜丰县| 南木林县| 敦化市| 固镇县| 绥滨县| 长沙县| 青阳县| 紫金县| 荣成市| 台江县| 凤凰县| 湘阴县| 宜君县| 云阳县| 宁远县| 敦煌市| 阆中市| 宿迁市| 三原县| 遂平县| 定襄县| 安西县| 永修县| 从江县| 黑河市| 四会市| 忻城县| 陆良县| 山丹县| 酒泉市|