簡介linux
文件系統就是分區或磁盤上的全部文件的邏輯集合。
文件系統不只包含着文件中的數據並且還有文件系統的結構,全部Linux 用戶和程序看到的文件、目錄、軟鏈接及文件保護信息等都存儲在其中。
不一樣Linux發行版本之間的文件系統差異不多,主要表如今系統管理的特點工具以及軟件包管理方式的不一樣,文件目錄結構基本上都是同樣的。
文件系統有多種類型,如:網絡
文件系統位於磁盤分區中;一個硬盤能夠有多個分區,也能夠只有一個分區;一個分區只能包含一個文件系統。
Linux文件系統與Windows有較大的差異。Windows的文件結構是多個並列的樹狀結構,最頂部的是不一樣的磁盤(分區),如 C、D、E、F等。
Linux的文件結構是單個的樹狀結構,根目錄是「/」,其餘目錄都要位於根目錄下。
每次安裝系統的時候咱們都會進行分區,Linux下磁盤分區和目錄的關係以下:less
下圖是常見的目錄和分區的對應關係:工具
爲何要分區,如何分區?spa
爲了便於定位和查找,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 (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 (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 | 打印指定文件系統的配額。 |
致謝:感謝您的耐心閱讀!