linux 文件系統解析及相關命令

簡介linux

  文件系統就是分區或磁盤上的全部文件的邏輯集合。

  文件系統不只包含文件中的數據並且還有文件系統的結構,全部Linux 用戶和程序看到的文件、目錄、軟鏈接及文件保護信息等都存儲在其中。

  不一樣Linux發行版本之間的文件系統差異不多,主要表如今系統管理的特點工具以及軟件包管理方式的不一樣,文件目錄結構基本上都是同樣的。

文件系統有多種類型,如:網絡

  • ext2 : 早期linux中經常使用的文件系統;
  • ext3 : ext2的升級版,帶日誌功能;
  • RAMFS : 內存文件系統,速度很快;
  • iso9660:光盤或光盤鏡像;
  • NFS : 網絡文件系統,由SUN發明,主要用於遠程文件共享;
  • MS-DOS : MS-DOS文件系統;
  • FAT : Windows XP 操做系統採用的文件系統;
  • NTFS : Windows NT/XP 操做系統採用的文件系統。

分區與目錄

  文件系統位於磁盤分區中;一個硬盤能夠有多個分區,也能夠只有一個分區;一個分區只能包含一個文件系統。

  Linux文件系統與Windows有較大的差異。Windows的文件結構是多個並列的樹狀結構,最頂部的是不一樣的磁盤(分區),如 C、D、E、F等。

  Linux的文件結構是單個的樹狀結構,根目錄是「/」其餘目錄都要位於根目錄下

  每次安裝系統的時候咱們都會進行分區,Linux下磁盤分區和目錄的關係以下:less

  • 任何一個分區都必須對應到某個目錄上,才能進行讀寫操做,稱爲「掛載」。
  • 被掛載的目錄能夠是根目錄,也能夠是其餘二級、三級目錄,任何目錄均可以是掛載點。
  • 目錄是邏輯上的區分。分區是物理上的區分。
  • 根目錄是全部Linux的文件和目錄所在的地方,須要掛載上一個磁盤分區。


  下圖是常見的目錄和分區的對應關係:工具

 

  爲何要分區,如何分區?spa

  • 能夠把不一樣資料,分別放入不一樣分區中管理,下降風險。
  • 大硬盤搜索範圍大,效率低。
  • /home、/var、/usr/local 常常是單獨分區,由於常常會操做,容易產生碎片。


爲了便於定位和查找,Linux中的每一個目錄通常都存放特定類型的文件,下表列出了各類Linux發行版本的常見目錄:操作系統

目錄 說明
/ 根目錄,只能包含目錄,不能包含具體文件。
/bin 存放可執行文件。不少命令就對應/bin目錄下的某個程序,例如 ls、cp、mkdir。/bin目錄對全部用戶有效。
/dev 硬件驅動程序。例如聲卡、磁盤驅動等,還有如 /dev/null、/dev/console、/dev/zero、/dev/full 等文件。
/etc 主要包含系統配置文件和用戶、用戶組配置文件。
/lib 主要包含共享庫文件,相似於Windows下的DLL;有時也會包含內核相關文件。
/boot 系統啓動文件,例如Linux內核、引導程序等。
/home 用戶工做目錄(主目錄),每一個用戶都會分配一個目錄。
/mnt 臨時掛載文件系統。這個目錄通常是用於存放掛載儲存設備的掛載目錄的,例如掛載CD-ROM的cdrom目錄。
/proc 操做系統運行時,進程(正在運行中的程序)信息及內核信息(好比cpu、硬盤分區、內存信息等)存放在這裏。/proc目錄假裝的文件系統proc的掛載目錄,proc並非真正的文件系統。
/tmp 臨時文件目錄,系統重啓後不會被保存。
/usr /user目下的文件比較混雜,包含了管理命令、共享文件、庫文件等,能夠被不少用戶使用。
/var 主要包含一些可變長度的文件,會常常對數據進行讀寫,例如日誌文件和打印隊列裏的文件。
/sbin 和 /bin 相似,主要包含可執行文件,不過通常是系統管理所須要的,不是全部用戶都須要。

經常使用文件管理命令

  你能夠經過下面的命令來管理文件:日誌

Command Description
cat filename 查看文件內容。
cd dirname 改變所在目錄。
cp file1 file2 複製文件或目錄。
file filename 查看文件類型(binary, text, etc)。
find filename dir 搜索文件或目錄。
head filename 顯示文件的開頭,與tail命令相對。
less filename 查看文件的所有內容,能夠分頁顯示,比more命令要強大。
ls dirname 遍歷目錄下的文件或目錄。
mkdir dirname 建立目錄。
more filename 查看文件的所有內容,能夠分頁顯示。
mv file1 file2 移動文件或重命名。
pwd 顯示用戶當前所在目錄。
rm filename 刪除文件。
rmdir dirname 刪除目錄。
tail filename 顯示文件的結尾,與head命令相對。
touch filename 文件不存在時建立一個空文件,存在時修改文件時間戳。
whereis filename 查看文件所在位置。
which filename 若是文件在環境變量PATH中有定義,那麼顯示文件位置。

df命令

  管理磁盤分區時常常會使用 df (disk free) 命令,df -k 命令能夠用來查看磁盤空間的使用狀況(以千字節計),例如:code

$df -k
Filesystem      1K-blocks      Used   Available Use% Mounted on
/dev/vzfs        10485760   7836644     2649116  75% /
/devices                0         0           0   0% /devices
$

 

  每一列的含義以下:blog

說明
Filesystem 表明文件系統對應的設備文件的路徑名(通常是硬盤上的分區)。
kbytes 分區包含的數據塊(1024字節)的數目。
used 已用空間。
avail 可用空間。
capacity 已用空間的百分比。
Mounted on 文件系統掛載點。


  某些目錄(例如 /devices)的 kbytes、used、avail 列爲0,use列爲0%,這些都是特殊(或虛擬)文件系統,即便位於根目錄下,也不佔用硬盤空間。

  你能夠結合 -h (human readable) 選項將輸出信息格式化,讓人更易閱讀。接口

du 命令

  du (disk usage) 命令能夠用來查看特定目錄的空間使用狀況

  du 命令會顯示每一個目錄所佔用數據塊。根據系統的不一樣,一個數據塊多是 512 字節或 1024 字節。舉例以下:

$du /etc
10     /etc/cron.d
126    /etc/default
6      /etc/dfs
...
$

 

  結合 -h 選項可讓信息顯示的更加清晰:

$du -h /etc
5k    /etc/cron.d
63k   /etc/default
3k    /etc/dfs
...
$

 

掛載文件系統

  掛載是指將一個硬件設備(例如硬盤、U盤、光盤等)對應到一個已存在的目錄上。 若要訪問設備中的文件,必須將文件掛載到一個已存在的目錄上, 而後經過訪問這個目錄來訪問存儲設備。

  這樣就爲用戶提供了統一的接口,屏蔽了硬件設備的細節。Linux將全部的硬件設備看作文件,對硬件設備的操做等同於對文件的操做。

  注意:掛載目錄能夠不爲空,但掛載後這個目錄下之前的內容將不可用。

  須要知道的是,光盤、軟盤、其餘操做系統使用的文件系統的格式與linux使用的文件系統格式是不同的,掛載須要確認Linux是否支持所要掛載的文件系統格式。

  查看當前系統所掛載的硬件設備可使用 mount 命令:

$ mount
/dev/vzfs on / type reiserfs (rw,usrquota,grpquota)
proc on /proc type proc (rw,nodiratime)
devpts on /dev/pts type devpts (rw)
$

  通常約定,/mnt 爲臨時掛載目錄,例如掛載CD-ROM、遠程網絡設備、軟盤等。

  也能夠經過mount命令來掛載文件系統,語法爲:

mount -t file_system_type device_to_mount directory_to_mount_to

 

例如:

$ mount -t iso9660 /dev/cdrom /mnt/cdrom

  將 CD-ROM 掛載到 /mnt/cdrom 目錄。

  注意:file_system_type用來指定文件系統類型,一般能夠不指定,Linux會自動正確選擇文件系統類型。

  掛載文件系統後,就能夠經過 cd、cat 等命令來操做對應文件。

  能夠經過 umount 命令來卸載文件系統。例如,卸載 cdrom:

$ umount /dev/cdrom

 

  不過,大部分現代的Linux系統都有自動掛載卸載功能,unmount 命令較少用到。

用戶和羣組配額

  用戶和羣組配額可讓管理員爲每一個用戶或羣組分配固定的磁盤空間。

  管理員有兩種方式來分配磁盤空間:

  • 軟限制:若是用戶超過指定的空間,會有一個寬限期,等待用戶釋放空間。
  • 硬限制:沒有寬限期,超出指定空間當即禁止操做。


  下面的命令能夠用來管理配額:

 

命令 說明
quota 顯示磁盤使用狀況以及每一個用戶組的配額。
edquota 編輯用戶和羣組的配額。
quotacheck 查看文件系統的磁盤使用狀況,建立、檢查並修復配額文件。
setquota 設置配額。
quotaon 開啓用戶或羣組的配額功能。
quotaoff 關閉用戶或羣組的配額功能。
repquota 打印指定文件系統的配額。

 

 

  致謝:感謝您的耐心閱讀!

相關文章
相關標籤/搜索