姓名:李振華? ? 學(xué)號(hào):17101223418
【嵌牛導(dǎo)讀】:文件系統(tǒng)是linux的一個(gè)十分基礎(chǔ)的知識(shí)灶芝,同時(shí)也是學(xué)習(xí)linux的必備知識(shí)。本文主要包括了linux磁盤(pán)分區(qū)和目錄、掛載基本原理、文件存儲(chǔ)結(jié)構(gòu)、軟鏈接硬鏈接括袒、和常見(jiàn)目錄的介紹。相信有了這些知識(shí)對(duì)于深入的學(xué)習(xí)linux會(huì)有一定的幫助稿茉。
【嵌牛鼻子】:文件系統(tǒng)大概是學(xué)習(xí)linux的第一步吧锹锰。
【嵌牛提問(wèn)】:linux文件系統(tǒng)是怎樣的?
【嵌牛正文】:
1.Linux磁盤(pán)分區(qū)和目錄
Windows的文件結(jié)構(gòu)是多個(gè)并列的樹(shù)狀結(jié)構(gòu)漓库,最頂部的是不同的磁盤(pán)(分區(qū))恃慧,如:C,D米苹,E糕伐,F(xiàn)等。Linux的文件結(jié)構(gòu)是單個(gè)的樹(shù)狀結(jié)構(gòu)蘸嘶,可以用tree進(jìn)行展示良瞧。 在Ubuntu下安裝tree(sudo apt-get install tree),并可通過(guò)命令來(lái)查看陪汽。
每次安裝系統(tǒng)的時(shí)候我們都會(huì)進(jìn)行分區(qū),Linux下磁盤(pán)分區(qū)和目錄的關(guān)系如下:
–? ? ? 任何一個(gè)分區(qū)都必須掛載到某個(gè)目錄上褥蚯。
–? ? ? 目錄是邏輯上的區(qū)分挚冤。分區(qū)是物理上的區(qū)分潮瓶。
–? ? ? 磁盤(pán)Linux分區(qū)都必須掛載到目錄樹(shù)中的某個(gè)具體的目錄上才能進(jìn)行讀寫(xiě)操作枢纠。
–? ? ? 根目錄是所有Linux的文件和目錄所在的地方,需要掛載上一個(gè)磁盤(pán)分區(qū)鼻种。
2.Mount掛載和NFS簡(jiǎn)介
掛載的概念:當(dāng)要使用某個(gè)設(shè)備時(shí)歧强,例如要讀取硬盤(pán)中的一個(gè)格式化好的分區(qū)澜薄、光盤(pán)或軟件等設(shè)備時(shí),必須先把這些設(shè)備對(duì)應(yīng)到某個(gè)目錄上摊册,而這個(gè)目錄就稱(chēng)為“掛載點(diǎn)(mount point)”肤京,這樣才可以讀取這些設(shè)備,而這些對(duì)應(yīng)的動(dòng)作就是“掛載”茅特。 將物理分區(qū)細(xì)節(jié)屏蔽掉忘分。用戶只有統(tǒng)一的邏輯概念。所有的東西都是文件白修。Mount命令可以實(shí)現(xiàn)掛載:
mount [-fnrsvw] [-t vfstype] [-o options] device dir
NFS簡(jiǎn)介:NFS相信在很多地方都有廣泛使用妒峦,是一個(gè)非常好的文件共享方式。我們公司所使用的上傳服務(wù)就是把文件上傳到某臺(tái)網(wǎng)絡(luò)服務(wù)器上兵睛,中間就是通過(guò)NFS實(shí)現(xiàn)肯骇。
使用NFS客戶端可以透明的地訪問(wèn)服務(wù)器端的文件。NFS也是通過(guò)mount來(lái)實(shí)現(xiàn)卤恳,底層是通過(guò)NFS通信協(xié)議實(shí)現(xiàn)累盗。
3.文件類(lèi)型
Linux下面的文件類(lèi)型主要有:
a)普通文件:C語(yǔ)言元代碼寒矿、SHELL腳本突琳、二進(jìn)制的可執(zhí)行文件等。分為純文本和二進(jìn)制符相。
b)目錄文件:目錄拆融,存儲(chǔ)文件的唯一地方。
c)鏈接文件:指向同一個(gè)文件或目錄的的文件啊终。
d)特殊文件:與系統(tǒng)外設(shè)相關(guān)的镜豹,通常在/dev下面。分為塊設(shè)備和字符設(shè)備蓝牲。
可以通過(guò)ls –l, file, stat幾個(gè)命令來(lái)查看文件的類(lèi)型等相關(guān)信息趟脂。
4.文件存儲(chǔ)結(jié)構(gòu)
Linux正統(tǒng)的文件系統(tǒng)(如ext2、ext3)一個(gè)文件由目錄項(xiàng)例衍、inode和數(shù)據(jù)塊組成昔期。
目錄項(xiàng):包括文件名和inode節(jié)點(diǎn)號(hào)已卸。
Inode:又稱(chēng)文件索引節(jié)點(diǎn),是文件基本信息的存放地和數(shù)據(jù)塊指針存放地硼一。
數(shù)據(jù)塊:文件的具體內(nèi)容存放地累澡。
Linux正統(tǒng)的文件系統(tǒng)(如ext2、3等)將硬盤(pán)分區(qū)時(shí)會(huì)劃分出目錄塊般贼、inode Table區(qū)塊和data block數(shù)據(jù)區(qū)域愧哟。一個(gè)文件由一個(gè)目錄項(xiàng)、inode和數(shù)據(jù)區(qū)域塊組成哼蛆。Inode包含文件的屬性(如讀寫(xiě)屬性蕊梧、owner等,以及指向數(shù)據(jù)塊的指針)腮介,數(shù)據(jù)區(qū)域塊則是文件內(nèi)容望几。當(dāng)查看某個(gè)文件時(shí),會(huì)先從inode table中查出文件屬性及數(shù)據(jù)存放點(diǎn)萤厅,再?gòu)臄?shù)據(jù)塊中讀取數(shù)據(jù)橄抹。
5.軟連接、硬鏈接
軟鏈接和硬鏈接是我們常見(jiàn)的兩種概念:
硬連接:是給文件一個(gè)副本惕味,同時(shí)建立兩者之間的連接關(guān)系楼誓。修改其中一個(gè),與其連接的文件同時(shí)被修改名挥。如果刪除其中[color=red]任意一個(gè)[/color]其余的文件將不受影響疟羹。
軟連接:也叫符號(hào)連接,他只是對(duì)源文件在新的位置建立一個(gè)“快捷(借用一下wondows常用詞)”,所以禀倔,當(dāng)源文件刪除時(shí)榄融,符號(hào)連接的文件將成為無(wú)源之水->僅僅剩下個(gè)文件名了,當(dāng)然刪除這個(gè)連接救湖,也不會(huì)影響到源文件愧杯,但對(duì)連接文件的使用、引用都是直接調(diào)用源文件的鞋既。
1:硬鏈接原文件和新文件的inode編號(hào)一致力九。而軟鏈接不一樣。
2:對(duì)原文件刪除邑闺,會(huì)導(dǎo)致軟鏈接不可用跌前,而硬鏈接不受影響。
3:對(duì)原文件的修改陡舅,軟抵乓、硬鏈接文件內(nèi)容也一樣的修改,因?yàn)槎际侵赶蛲粋€(gè)文件內(nèi)容的。
6.文件目錄管理命令
磁盤(pán)和文件空間
fdisk df du
文件目錄與管理
cd pwd mkdir rmdir ls cp rm mv
查看文件內(nèi)容
cat:
cat [file]
查看文件的內(nèi)容灾炭。全程式concatenate的意思章鲤,將文件內(nèi)容連續(xù)輸出到屏幕上。第一行到最后一行顯示咆贬。
tac:
tac [file]
和cat剛好相反 是從最后一行到第一行的方式查看败徊。
cat有個(gè)比較不好的地方時(shí)當(dāng)文件比較大時(shí)候沒(méi)辦法看清楚,這個(gè)時(shí)候可以用more或者Less命令掏缎。
more:
more [file]
如果使用grep或者find等命令時(shí)皱蹦,可以配合使用more一頁(yè)一頁(yè)的查看。如果看到一半想退出眷蜈,則敲入’q’即可退出沪哺。
less:
less [file]
less比more更有彈性,可以上下翻頁(yè)酌儒。
如果只想讀取文件的頭幾行或者文件的末尾幾行辜妓,可以用head或tail.
head –n [file]:讀取文件的前n行。
tail –n [file]:讀取文件末尾n行忌怎。
以上命令都是用于查看字符文件籍滴,二進(jìn)制文件出來(lái)的都是亂碼,要看二進(jìn)制文件的內(nèi)容榴啸,可以用od命令,如查看一個(gè)MP3文件里面的內(nèi)容:
od shijiemori.mp3
文件目錄與權(quán)限
chmod chown chgrp umask
文件查找
which:
which [filename]
該命令用于查詢通過(guò)PATH路徑到該路徑內(nèi)查找可執(zhí)行文件孽惰。
如:Which passwd:查找可執(zhí)行文件passwd
whereis:
whereis [-bmsu] [keyword]
該命令用于把相關(guān)字的文件和目錄都列出來(lái)。(Linux 會(huì)將文件都記錄在一個(gè)文件數(shù)據(jù)庫(kù)里面鸥印,該命令式從數(shù)據(jù)庫(kù)去查詢勋功,所以速度比較快,Linux每天會(huì)更新該數(shù)據(jù)庫(kù))
locate:
locate [filename]
該命令用于把相關(guān)字的文件和目錄都列出來(lái)。查找數(shù)據(jù)特別快库说,也是通過(guò)數(shù)據(jù)庫(kù)方式來(lái)查詢狂鞋。但是數(shù)據(jù)庫(kù)一周更新一次,所以可能有些存在數(shù)據(jù)查不到潜的∩ё幔可以去修改配置文件。
find:
find [path] [參數(shù)] [keyword]
該命令用于在指定路徑下查找文件夏块。不是通過(guò)數(shù)據(jù)來(lái)查詢疏咐,所以速度會(huì)比較慢。
7.常見(jiàn)目錄解釋
Linux各種發(fā)行版的目錄結(jié)構(gòu)基本一致脐供,各個(gè)目錄簡(jiǎn)單介紹如下:
目錄
描述
/? 根目錄
/bin? 做為基礎(chǔ)系統(tǒng)所需要的最基礎(chǔ)的命令就是放在這里。比如 ls借跪、cp政己、mkdir等命令;功能和/usr/bin類(lèi)似,這個(gè)目錄中的文件都是可執(zhí)行的歇由,普通用戶都可以使用的命令卵牍。
/boot? Linux的內(nèi)核及引導(dǎo)系統(tǒng)程序所需要的文件,比如 vmlinuz initrd.img 文件都位于這個(gè)目錄中沦泌。在一般情況下糊昙,GRUB或LILO系統(tǒng)引導(dǎo)管理器也位于這個(gè)目錄;啟動(dòng)裝載文件存放位置谢谦,如kernels,initrd,grub释牺。一般是一個(gè)獨(dú)立的分區(qū)。
/dev? 一些必要的設(shè)備,聲卡回挽、磁盤(pán)等没咙。還有如 /dev/null. /dev/console /dev/zero /dev/full 等。
/etc? 系統(tǒng)的配置文件存放地. 一些服務(wù)器的配置文件也在這里千劈;比如用戶帳號(hào)及密碼配置文件祭刚;
? ? ? ? ? /etc/opt:/opt對(duì)應(yīng)的配置文件
? ? ? ? /etc/X11:Xwindows系統(tǒng)配置文件
? ? ? ? /etc/xml:XML配置文件
? ? ? ? ……
/home? 用戶工作目錄,和個(gè)人配置文件墙牌,如個(gè)人環(huán)境變量等涡驮,所有的賬號(hào)分配一個(gè)工作目錄。一般是一個(gè)獨(dú)立的分區(qū)喜滨。
/lib? 庫(kù)文件存放地遮怜。bin和sbin需要的庫(kù)文件。類(lèi)似windows的DLL鸿市。
/media? 可拆卸的媒介掛載點(diǎn)锯梁,如CD-ROMs、移動(dòng)硬盤(pán)焰情、U盤(pán)陌凳,系統(tǒng)默認(rèn)會(huì)掛載到這里來(lái)。
/mnt? 臨時(shí)掛載文件系統(tǒng)内舟。這個(gè)目錄一般是用于存放掛載儲(chǔ)存設(shè)備的掛載目錄的合敦,比如有cdrom 等目錄⊙橛危可以參看/etc/fstab的定義充岛。
/opt? 可選的應(yīng)用程序包。
/proc? 操作系統(tǒng)運(yùn)行時(shí)耕蝉,進(jìn)程(正在運(yùn)行中的程序)信息及內(nèi)核信息(比如cpu崔梗、硬盤(pán)分區(qū)、內(nèi)存信息等)存放在這里垒在。/proc目錄偽裝的文件系統(tǒng)proc的掛載目錄蒜魄,proc并不是真正的文件系統(tǒng),它的定義可以參見(jiàn) /etc/fstab 。
/root? Root用戶的工作目錄
/sbin? 和bin類(lèi)似谈为,是一些可執(zhí)行文件旅挤,不過(guò)不是所有用戶都需要的,一般是系統(tǒng)管理所需要使用得到的伞鲫。
/tmp? 系統(tǒng)的臨時(shí)文件粘茄,一般系統(tǒng)重啟不會(huì)被保存。
/usr? 包含了系統(tǒng)用戶工具和程序秕脓。
? ? ? ? /usr/bin:非必須的普通用戶可執(zhí)行命令
? ? ? ? /usr/include:標(biāo)準(zhǔn)頭文件
? ? ? /usr/lib:/usr/bin/ 和 /usr/sbin/的庫(kù)文件
? ? ? /usr/sbin:非必須的可執(zhí)行文件
? ? ? /usr/src:內(nèi)核源碼
? ? ? /usr/X11R6:X Window System, Version 11, Release 6.
/srv? 該目錄存放一些服務(wù)啟動(dòng)之后需要提取的數(shù)據(jù)
轉(zhuǎn)載自:http://www.cnblogs.com/yyyyy5101/articles/1901842.html