linux文件系統(tǒng)和nfs配置

萬物皆是文件

? ? 在unix里面這是一句很有名的話: 在linux系統(tǒng)的大多數(shù)資源都以文件形式存在,包括文件 目錄 io 管道 套接字 甚至是硬件設(shè)配 等

eg: ruby 每一個io類資源 都有一個打開文件編號(從3開始往后) file = File.open("/dev/null"); file.fileno

linux文件系統(tǒng)

? 文件系統(tǒng)是linux的一個十分基礎(chǔ)的知識,同時也是學(xué)習(xí)linux的必備知識。本文將了解linux的文件系統(tǒng),主要包括了linux磁盤分區(qū)和目錄、掛載基本原理、文件存儲結(jié)構(gòu)、軟鏈接硬鏈接、和常見目錄的介紹。

1.Linux磁盤分區(qū)和目錄

Linux發(fā)行版本之間的差別很少,差別主要表現(xiàn)在系統(tǒng)管理的特色工具以及軟件包管理方式的不同。目錄結(jié)構(gòu)基本上都是一樣的。?Windows的文件結(jié)構(gòu)是多個并列的樹狀結(jié)構(gòu),最頂部的是不同的磁盤(分區(qū)),如:C,D,E,F(xiàn)等。

Linux的文件結(jié)構(gòu)是單個的樹狀結(jié)構(gòu).可以用tree進(jìn)行展示。?在Ubuntu下安裝tree(sudo apt-get install tree),并可通過命令來查看。

每次安裝系統(tǒng)的時候我們都會進(jìn)行分區(qū),Linux下磁盤分區(qū)和目錄的關(guān)系如下:

–??????任何一個分區(qū)都必須掛載到某個目錄上。

–??????目錄是邏輯上的區(qū)分。分區(qū)是物理上的區(qū)分。

–??????磁盤Linux分區(qū)都必須掛載到目錄樹中的某個具體的目錄上才能進(jìn)行讀寫操作。

–??????根目錄是所有Linux的文件和目錄所在的地方,需要掛載上一個磁盤分區(qū)。

以下是我們可能存在的一種目錄和分區(qū)關(guān)系:

圖1:目錄和分區(qū)關(guān)系

Q:如何查看分區(qū)和目錄及使用情況?

–??????fdisk查看硬盤分區(qū)表

–??????df:查看分區(qū)使用情況

–??????du:?查看文件占用空間情況

Q:?為什么要分區(qū),如何分區(qū)?

–??????可以把不同資料,分別放入不同分區(qū)中管理,降低風(fēng)險。

–??????大硬盤搜索范圍大,效率低

–??????磁盤配合只能對分區(qū)做設(shè)定

–??????/home /var /usr/local經(jīng)常是單獨(dú)分區(qū),因為經(jīng)常會操作,容易產(chǎn)生碎片

2.Mount掛載和NFS簡介

掛載的概念:當(dāng)要使用某個設(shè)備時,例如要讀取硬盤中的一個格式化好的分區(qū)、光盤或軟件等設(shè)備時,必須先把這些設(shè)備對應(yīng)到某個目錄上,而這個目錄就稱為“掛載點(mount point)”,這樣才可以讀取這些設(shè)備,而這些對應(yīng)的動作就是“掛載”。?將物理分區(qū)細(xì)節(jié)屏蔽掉。用戶只有統(tǒng)一的邏輯概念。所有的東西都是文件。Mount命令可以實現(xiàn)掛載:

mount [-fnrsvw] [-t vfstype] [-o options] device dir

Q:所有的磁盤分區(qū)都必須被掛載上才能使用,那么我們機(jī)器上的硬盤分區(qū)是如何被掛載的?

A:這主要是它利用了/etc/fstab文件。每次內(nèi)核加載它知道從這里開始mount文件系統(tǒng)。每次系統(tǒng)啟動會根據(jù)該文件定義自動掛載。若沒有被自動掛載,分區(qū)將不能使用。?如下是我的/etc/fstab的定義,主要是根據(jù)裝機(jī)的分區(qū)來的:

# 文件系統(tǒng) 掛載點 類型

proc????????????/proc???????????proc????defaults????????0???????0

#/dev/sda1被自動掛載到? /

UUID=cb1934d0-4b72-4bbf-9fad-885d2a8eeeb1 /???????????????ext3????relatime,errors=remount-ro 0???????1

# /dev/sda5?被自動掛載到分區(qū)/home

UUID=c40f813b-bb0e-463e-aa85-5092a17c9b94 /home???????????ext3????relatime????????0???????2

#/dev/sda7?被自動掛載到/work

UUID=0f918e7e-721a-41c6-af82-f92352a568af /work???????????ext3????relatime????????0???????2

#分區(qū)?/dev/sda6被自動掛載到swap

UUID=2f8bdd05-6f8e-4a6b-b166-12bb52591a1f none????????????swap????sw??????????????0???????0

Q:移動硬盤如何掛載?如何掛載一個新的分區(qū)?

移動硬盤有驅(qū)動模塊會自動掛載,如果有個新硬盤,要先進(jìn)行分區(qū),并通過mount命令掛載到某個文件夾。如果要自動掛載則可以修改/etc/fstab文件.

nfs簡介:

NFS 是Network File System的縮寫,即網(wǎng)絡(luò)文件系統(tǒng)。一種使用于分散式文件系統(tǒng)的協(xié)定,由Sun公司開發(fā),于1984年向外公布。功能是通過網(wǎng)絡(luò)讓不同的機(jī)器、不同的操作系統(tǒng)能夠彼此分享個別的數(shù)據(jù),讓應(yīng)用程序在客戶端通過網(wǎng)絡(luò)訪問位于服務(wù)器磁盤中的數(shù)據(jù),是在類Unix系統(tǒng)間實現(xiàn)磁盤文件共享的一種方法。

NFS相信在很多地方都有廣泛使用,是一個非常好的文件共享方式。我們公司所使用的上傳服務(wù)就是把文件上傳到某臺網(wǎng)絡(luò)服務(wù)器上,中間就是通過NFS實現(xiàn)。

使用NFS客戶端可以透明的地訪問服務(wù)器端的文件。NFS也是通過mount來實現(xiàn),底層是通過NFS通信協(xié)議實現(xiàn)。基本原理:

圖2:NFS基本原理

Ubuntu下面Ubuntu下的例子

服務(wù)端:

$apt-get install nfs-kernel-server

vi /etc/exports?添加nfs目錄: /personal/nfs_share

10.1.60.34(rw,sync,no_root_squash)

$sudo exportfs -r

$sudo /etc/init.d/portmap start

$sudo /etc/init.d/nfs-kernel-server start

客戶端:

$sudo apt-get install nfs-common

$sudo mount 10.19.34.76:/personal/nfs_share ~/nfsshare

3.文件類型

Linux下面的文件類型主要有:

a)普通文件:C語言元代碼、SHELL腳本、二進(jìn)制的可執(zhí)行文件等。分為純文本和二進(jìn)制。

b)目錄文件:目錄,存儲文件的唯一地方。

c)鏈接文件:指向同一個文件或目錄的的文件。

d)特殊文件:與系統(tǒng)外設(shè)相關(guān)的,通常在/dev下面。分為塊設(shè)備和字符設(shè)備。

可以通過ls –l, file, stat幾個命令來查看文件的類型等相關(guān)信息。

4.文件存儲結(jié)構(gòu)

Linux正統(tǒng)的文件系統(tǒng)(如ext2、ext3)一個文件由目錄項、inode和數(shù)據(jù)塊組成。

目錄項:包括文件名和inode節(jié)點號。

Inode:又稱文件索引節(jié)點,是文件基本信息的存放地和數(shù)據(jù)塊指針存放地。

數(shù)據(jù)塊:文件的具體內(nèi)容存放地。

Linux正統(tǒng)的文件系統(tǒng)(如ext2、3等)將硬盤分區(qū)時會劃分出目錄塊、inode Table區(qū)塊和data block數(shù)據(jù)區(qū)域。一個文件由一個目錄項、inode和數(shù)據(jù)區(qū)域塊組成。Inode包含文件的屬性(如讀寫屬性、owner等,以及指向數(shù)據(jù)塊的指針),數(shù)據(jù)區(qū)域塊則是文件內(nèi)容。當(dāng)查看某個文件時,會先從inode table中查出文件屬性及數(shù)據(jù)存放點,再從數(shù)據(jù)塊中讀取數(shù)據(jù)。

站在2w英尺視圖,文件存儲結(jié)構(gòu)大概如下:

圖3:文件存儲結(jié)構(gòu)2w英尺視圖

其中目錄項的結(jié)構(gòu)如下(每個文件的目錄項存儲在改文件所屬目錄的文件內(nèi)容里):

圖4:目錄項結(jié)構(gòu)

其中文件的inode結(jié)構(gòu)如下(inode里所包含的文件信息可以通過stat filename查看得到):

圖5:inode結(jié)構(gòu)

以上只反映大體的結(jié)構(gòu),linux文件系統(tǒng)本身在不斷發(fā)展。但是以上概念基本是不變的。且如ext2、ext3、ext4文件系統(tǒng)也存在很大差別,如果要了解可以查看專門的文件系統(tǒng)介紹。

5.軟連接、硬鏈接

軟鏈接和硬鏈接是我們常見的兩種概念:

硬連接:是給文件一個副本,同時建立兩者之間的連接關(guān)系。修改其中一個,與其連接的文件同時被修改。如果刪除其中[color=red]任意一個[/color]其余的文件將不受影響。

軟連接:也叫符號連接,他只是對源文件在新的位置建立一個“快捷(借用一下wondows常用詞)”,所以,當(dāng)源文件刪除時,符號連接的文件將成為無源之水->僅僅剩下個文件名了,當(dāng)然刪除這個連接,也不會影響到源文件,但對連接文件的使用、引用都是直接調(diào)用源文件的。

具體關(guān)系可以看下圖:

圖5:軟鏈接和硬鏈接

從圖上可以看出硬鏈接和軟鏈接的區(qū)別:

1:硬鏈接原文件和新文件的inode編號一致。而軟鏈接不一樣。

2:對原文件刪除,會導(dǎo)致軟鏈接不可用,而硬鏈接不受影響。

3:對原文件的修改,軟、硬鏈接文件內(nèi)容也一樣的修改,因為都是指向同一個文件內(nèi)容的。

6.文件目錄管理命令

磁盤和文件空間

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有個比較不好的地方時當(dāng)文件比較大時候沒辦法看清楚,這個時候可以用more或者Less命令。

more:

more [file]

如果使用grep或者find等命令時,可以配合使用more一頁一頁的查看。如果看到一半想退出,則敲入’q’即可退出。

less:

less [file]

less比more更有彈性,可以上下翻頁。

如果只想讀取文件的頭幾行或者文件的末尾幾行,可以用head或tail.

head –n [file]:讀取文件的前n行。

tail –n [file]:讀取文件末尾n行。

以上命令都是用于查看字符文件,二進(jìn)制文件出來的都是亂碼,要看二進(jìn)制文件的內(nèi)容,可以用od命令,如查看一個MP3文件里面的內(nèi)容:

od shijiemori.mp3

文件目錄與權(quán)限

chmod chown chgrp umask

文件查找

which:

which [filename]

該命令用于查詢通過PATH路徑到該路徑內(nèi)查找可執(zhí)行文件。

如:Which passwd:查找可執(zhí)行文件passwd

whereis:

whereis [-bmsu] [keyword]

該命令用于把相關(guān)字的文件和目錄都列出來。(Linux 會將文件都記錄在一個文件數(shù)據(jù)庫里面,該命令式從數(shù)據(jù)庫去查詢,所以速度比較快,Linux每天會更新該數(shù)據(jù)庫)

locate:

locate [filename]

該命令用于把相關(guān)字的文件和目錄都列出來。查找數(shù)據(jù)特別快,也是通過數(shù)據(jù)庫方式來查詢。但是數(shù)據(jù)庫一周更新一次,所以可能有些存在數(shù)據(jù)查不到。可以去修改配置文件。

find:

find [path] [參數(shù)] [keyword]

該命令用于在指定路徑下查找文件。不是通過數(shù)據(jù)來查詢,所以速度會比較慢。

7.常見目錄解釋

Linux各種發(fā)行版的目錄結(jié)構(gòu)基本一致,各個目錄簡單介紹如下:

目錄

描述

/

根目錄

/bin

做為基礎(chǔ)系統(tǒng)所需要的最基礎(chǔ)的命令就是放在這里。比如?ls、cp、mkdir等命令;功能和/usr/bin類似,這個目錄中的文件都是可執(zhí)行的,普通用戶都可以使用的命令。

/boot

Linux的內(nèi)核及引導(dǎo)系統(tǒng)程序所需要的文件,比如?vmlinuz initrd.img?文件都位于這個目錄中。在一般情況下,GRUB或LILO系統(tǒng)引導(dǎo)管理器也位于這個目錄;啟動裝載文件存放位置,如kernels,initrd,grub。一般是一個獨(dú)立的分區(qū)。

/dev

一些必要的設(shè)備,聲卡、磁盤等。還有如?/dev/null. /dev/console /dev/zero /dev/full?等。

/etc

系統(tǒng)的配置文件存放地.?一些服務(wù)器的配置文件也在這里;比如用戶帳號及密碼配置文件;

/etc/opt:/opt對應(yīng)的配置文件

/etc/X11:Xwindows系統(tǒng)配置文件

/etc/xml:XML配置文件

……

/home

用戶工作目錄,和個人配置文件,如個人環(huán)境變量等,所有的賬號分配一個工作目錄。一般是一個獨(dú)立的分區(qū)。

/lib

庫文件存放地。bin和sbin需要的庫文件。類似windows的DLL。

/media

可拆卸的媒介掛載點,如CD-ROMs、移動硬盤、U盤,系統(tǒng)默認(rèn)會掛載到這里來。

/mnt

臨時掛載文件系統(tǒng)。這個目錄一般是用于存放掛載儲存設(shè)備的掛載目錄的,比如有cdrom?等目錄。可以參看/etc/fstab的定義。

/opt

可選的應(yīng)用程序包。

/proc

操作系統(tǒng)運(yùn)行時,進(jìn)程(正在運(yùn)行中的程序)信息及內(nèi)核信息(比如cpu、硬盤分區(qū)、內(nèi)存信息等)存放在這里。/proc目錄偽裝的文件系統(tǒng)proc的掛載目錄,proc并不是真正的文件系統(tǒng),它的定義可以參見?/etc/fstab?。

/root

Root用戶的工作目錄

/sbin

和bin類似,是一些可執(zhí)行文件,不過不是所有用戶都需要的,一般是系統(tǒng)管理所需要使用得到的。

/tmp

系統(tǒng)的臨時文件,一般系統(tǒng)重啟不會被保存。

/usr

包含了系統(tǒng)用戶工具和程序。

/usr/bin:非必須的普通用戶可執(zhí)行命令

/usr/include:標(biāo)準(zhǔn)頭文件

/usr/lib:/usr/bin/?和?/usr/sbin/的庫文件

/usr/sbin:非必須的可執(zhí)行文件

/usr/src:內(nèi)核源碼

/usr/X11R6:X Window System, Version 11, Release 6.

/srv

該目錄存放一些服務(wù)啟動之后需要提取的數(shù)據(jù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,983評論 6 537
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,772評論 3 422
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,947評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,201評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,960評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,350評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,406評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,549評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,104評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,914評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,089評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,647評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,340評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,753評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,007評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,834評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,106評論 2 375

推薦閱讀更多精彩內(nèi)容