Linux文件系統(tǒng)介紹
一、簡(jiǎn)介
文件系統(tǒng)就是分區(qū)或磁盤上的所有文件的邏輯集合。
文件系統(tǒng)不僅包含著文件中的數(shù)據(jù)而且還有文件系統(tǒng)的結(jié)構(gòu),所有Linux 用戶和程序看到的文件、目錄、軟連接及文件保護(hù)信息等都存儲(chǔ)在其中。
不同Linux發(fā)行版本之間的文件系統(tǒng)差別很少,主要表現(xiàn)在系統(tǒng)管理的特色工具以及軟件包管理方式的不同,文件目錄結(jié)構(gòu)基本上都是一樣的。
文件系統(tǒng)有多種類型
- ext2 : 早期linux中常用的文件系統(tǒng);
- ext3 : ext2的升級(jí)版,帶日志功能;
- RAMFS : 內(nèi)存文件系統(tǒng),速度很快;
- iso9660:光盤或光盤鏡像;
- NFS : 網(wǎng)絡(luò)文件系統(tǒng),由SUN發(fā)明,主要用于遠(yuǎn)程文件共享;
- MS-DOS : MS-DOS文件系統(tǒng);
- FAT : Windows XP 操作系統(tǒng)采用的文件系統(tǒng);
- NTFS : Windows NT/XP 操作系統(tǒng)采用的文件系統(tǒng)。
二、分區(qū)與目錄
文件系統(tǒng)位于磁盤分區(qū)中;一個(gè)硬盤可以有多個(gè)分區(qū),也可以只有一個(gè)分區(qū);一個(gè)分區(qū)只能包含一個(gè)文件系統(tǒng)。
Linux文件系統(tǒng)與Windows有較大的差別。Windows的文件結(jié)構(gòu)是多個(gè)并列的樹(shù)狀結(jié)構(gòu),最頂部的是不同的磁盤(分區(qū)),如 C、D、E、F等。Linux的文件結(jié)構(gòu)是單個(gè)的樹(shù)狀結(jié)構(gòu),根目錄是“/”,其他目錄都要位于根目錄下。
每次安裝系統(tǒng)的時(shí)候我們都會(huì)進(jìn)行分區(qū),
Linux下磁盤分區(qū)和目錄的關(guān)系
- 任何一個(gè)分區(qū)都必須對(duì)應(yīng)到某個(gè)目錄上,才能進(jìn)行讀寫操作,稱為“掛載”。
- 被掛載的目錄可以是根目錄,也可以是其他二級(jí)、三級(jí)目錄,任何目錄都可以是掛載點(diǎn)。
- 目錄是邏輯上的區(qū)分。分區(qū)是物理上的區(qū)分。
- 根目錄是所有Linux的文件和目錄所在的地方,需要掛載上一個(gè)磁盤分區(qū)。
下圖是常見(jiàn)的目錄和分區(qū)的對(duì)應(yīng)關(guān)系:
為什么要分區(qū),如何分區(qū)?
- 可以把不同資料,分別放入不同分區(qū)中管理,降低風(fēng)險(xiǎn)。
- 大硬盤搜索范圍大,效率低。
- /home、/var、/usr、/local 經(jīng)常是單獨(dú)分區(qū),因?yàn)榻?jīng)常會(huì)操作,容易產(chǎn)生碎片。
為了便于定位和查找,Linux中的每個(gè)目錄一般都存放特定類型的文件,
各種Linux發(fā)行版本的常見(jiàn)目錄
- / : 根目錄,只能包含目錄,不能包含具體文件。
- /bin: bin是Binary的縮寫,存放可執(zhí)行文件。很多命令就對(duì)應(yīng)/bin目錄下的某個(gè)程序,例如 ls、cp、mkdir。/bin目錄對(duì)所有用戶有效。
- /dev: dev是Device(設(shè)備)的縮寫,硬件驅(qū)動(dòng)程序。例如聲卡、磁盤驅(qū)動(dòng)等,還有如 /dev/null、/dev/console、/dev/zero、/dev/full 等文件。
- /etc: 主要包含系統(tǒng)管理所需要的配置文件和用戶、用戶組配置文件。
- /lib: 主要包含共享庫(kù)文件,類似于Windows下的DLL;有時(shí)也會(huì)包含內(nèi)核相關(guān)文件。
- /boot: 系統(tǒng)啟動(dòng)文件,例如Linux內(nèi)核、引導(dǎo)程序等。
- /home: 用戶工作目錄(主目錄),每個(gè)用戶都會(huì)分配一個(gè)目錄。
- /mnt: 臨時(shí)掛載文件系統(tǒng)。這個(gè)目錄一般是用于存放掛載儲(chǔ)存設(shè)備的掛載目錄的,例如掛載CD-ROM的/mnt/cdrom目錄,然后進(jìn)入該目錄就可以查看光驅(qū)里的內(nèi)容了。
- /proc:這個(gè)目錄是一個(gè)虛擬的目錄,它是系統(tǒng)內(nèi)存的映射,我們可以通過(guò)直接訪問(wèn)這個(gè)目錄來(lái)獲取系統(tǒng)信息。這個(gè)目錄的內(nèi)容不在硬盤上而是在內(nèi)存里,我們也可以直接修改里面的某些文件。
- /tmp: 臨時(shí)文件目錄,系統(tǒng)重啟后不會(huì)被保存。
- /lost+found:這個(gè)目錄一般情況下是空的,當(dāng)系統(tǒng)非法關(guān)機(jī)后,這里就存放了一些文件。
- /run:是一個(gè)臨時(shí)文件系統(tǒng),存儲(chǔ)系統(tǒng)啟動(dòng)以來(lái)的信息。當(dāng)系統(tǒng)重啟時(shí),這個(gè)目錄下的文件應(yīng)該被刪掉或清除。如果你的系統(tǒng)上有 /var/run 目錄,應(yīng)該讓它指向 run。
- /usr: 這是一個(gè)非常重要的目錄,用戶的很多應(yīng)用程序和文件都放在這個(gè)目錄下,類似于windows下的program files目錄。user目下的文件比較混雜,包含了管理命令、共享文件、庫(kù)文件等,可以被很多用戶使用。
/usr/bin:系統(tǒng)用戶使用的應(yīng)用程序。
/usr/sbin:超級(jí)用戶使用的比較高級(jí)的管理程序和系統(tǒng)守護(hù)程序。
/usr/src:內(nèi)核源代碼默認(rèn)的放置目錄。
- /var: 這個(gè)目錄中存放著在不斷擴(kuò)充著的東西,主要包含一些可變長(zhǎng)度的文件,會(huì)經(jīng)常對(duì)數(shù)據(jù)進(jìn)行讀寫,例如日志文件和打印隊(duì)列里的文件。
- /sbin: s就是Super User的意思,和 /bin 類似,主要包含可執(zhí)行文件,不過(guò)一般是系統(tǒng)管理所需要的,不是所有用戶都需要。
- /media:linux系統(tǒng)會(huì)自動(dòng)識(shí)別一些設(shè)備,例如U盤、光驅(qū)等等,當(dāng)識(shí)別后,linux會(huì)把識(shí)別的設(shè)備掛載到這個(gè)目錄下。
- /opt: 這是給主機(jī)額外安裝軟件所擺放的目錄。比如你安裝一個(gè)ORACLE數(shù)據(jù)庫(kù)則就可以放到這個(gè)目錄下。默認(rèn)是空的。
- /root:該目錄為系統(tǒng)管理員,也稱作超級(jí)權(quán)限者的用戶主目錄。
- /srv: 該目錄存放一些服務(wù)啟動(dòng)之后需要提取的數(shù)據(jù)。
在 Linux 系統(tǒng)中,有幾個(gè)目錄是比較重要的,平時(shí)需要注意不要誤刪除或者隨意更改內(nèi)部文件。
- /etc: 上邊也提到了,這個(gè)是系統(tǒng)中的配置文件,如果你更改了該目錄下的某個(gè)文件可能會(huì)導(dǎo)致系統(tǒng)不能啟動(dòng)。
- /bin, /sbin, /usr/bin, /usr/sbin: 這是系統(tǒng)預(yù)設(shè)的執(zhí)行文件的放置目錄,比如 ls 就是在/bin/ls 目錄下的。
值得提出的是,/bin, /usr/bin 是給系統(tǒng)用戶使用的指令(除root外的通用戶),而/sbin, /usr/sbin 則是給root使用的指令。 - /var: 這是一個(gè)非常重要的目錄,系統(tǒng)上跑了很多程序,那么每個(gè)程序都會(huì)有相應(yīng)的日志產(chǎn)生,而這些日志就被記錄到這個(gè)目錄下,具體在/var/log 目錄下,另外mail的預(yù)設(shè)放置也是在這里。
三、常用文件管理命令
你可以通過(guò)下面的命令來(lái)管理文件:
- cat filename: 查看文件內(nèi)容。
- cd dirname: 改變所在目錄。
- cp file1 file2: 復(fù)制文件或目錄。
- file filename: 查看文件類型(binary, text, etc)。
- find filename dir: 搜索文件或目錄。
- head filename: 顯示文件的開(kāi)頭,與tail命令相對(duì)。
- less filename: 查看文件的全部?jī)?nèi)容,可以分頁(yè)顯示,比more命令要強(qiáng)大。
- ls dirname: 遍歷目錄下的文件或目錄。
- mkdir dirname: 創(chuàng)建目錄。
- more filename: 查看文件的全部?jī)?nèi)容,可以分頁(yè)顯示。
- mv file1 file2: 移動(dòng)文件或重命名。
- pwd: 顯示用戶當(dāng)前所在目錄。
- rm filename: 刪除文件。
- rmdir dirname: 刪除目錄。
- tail filename: 顯示文件的結(jié)尾,與head命令相對(duì)。
- touch filename: 文件不存在時(shí)創(chuàng)建一個(gè)空文件,存在時(shí)修改文件時(shí)間戳。
- whereis filename: 查看文件所在位置。
- which filename: 如果文件在環(huán)境變量PATH中有定義,那么顯示文件位置。
四、用戶和群組配額
用戶和群組配額可以讓管理員為每個(gè)用戶或群組分配固定的磁盤空間。
管理員有兩種方式來(lái)分配磁盤空間:
- 軟限制:如果用戶超過(guò)指定的空間,會(huì)有一個(gè)寬限期,等待用戶釋放空間。
- 硬限制:沒(méi)有寬限期,超出指定空間立即禁止操作。
下面的命令可以用來(lái)管理配額:
- quota: 顯示磁盤使用情況以及每個(gè)用戶組的配額。
- edquota: 編輯用戶和群組的配額。
- quotacheck: 查看文件系統(tǒng)的磁盤使用情況,創(chuàng)建、檢查并修復(fù)配額文件。
- setquota: 設(shè)置配額。
- quotaon: 開(kāi)啟用戶或群組的配額功能。
- quotaoff: 關(guān)閉用戶或群組的配額功能。
- repquota: 打印指定文件系統(tǒng)的配額。
到此這篇關(guān)于Linux文件系統(tǒng)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
一個(gè)shell小案例(創(chuàng)建日期目錄)
需要在多個(gè)目錄中 (如:beijing shanghai tianjin guangzhou 等等) 創(chuàng)建子目錄(以年份命名),然后進(jìn)入子目錄,新建目錄并以當(dāng)天的日期命名2016-08-08查看linux中某個(gè)端口(port)是否被占用的方法
下面小編就為大家?guī)?lái)一篇查看linux中某個(gè)端口(port)是否被占用的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05