文件系統(tǒng)層次化標準(FHS)
| 目錄名稱 | 應放置的文件內(nèi)容 |
|---|---|
| /boot | 開機所需文件—內(nèi)核、開機菜單以及所需配置文件等 |
| /dev | 以文件形式存放任何設備與接口 |
| /etc | 配置文件 |
| /home | 用戶家目錄 |
| /bin | 存放單用戶模式下還可以操作的命令 |
| /lib | 開機時用到的函數(shù)庫,以及/bin與/sbin下面的命令要調(diào)用的函數(shù) |
| /sbin | 開機過程中需要的命令 |
| /media | 用于掛載設備文件的目錄 |
| /opt | 放置第三方的軟件 |
| /root | 系統(tǒng)管理員的家目錄 |
| /srv | 一些網(wǎng)絡服務的數(shù)據(jù)文件目錄 |
| /tmp | 任何人均可使用的“共享”臨時目錄 |
| /proc | 虛擬文件系統(tǒng),例如系統(tǒng)內(nèi)核、進程、外部設備及網(wǎng)絡狀態(tài)等 |
| /usr/local | 用戶自行安裝的軟件 |
| /usr/sbin | Linux系統(tǒng)開機時不會使用到的軟件/命令/腳本 |
| /usr/share | 幫助與說明文件,也可放置共享文件 |
| /var | 主要存放經(jīng)常變化的文件,如日志 |
| /lost+found | 當文件系統(tǒng)發(fā)生錯誤時,將一些丟失的文件片段存放在這里 |
物理設備命名規(guī)則
在Linux 系統(tǒng)中一切皆文件,硬件設備也不例外。udev設備管理器的服務于會一直以守護進程的形式運行并真挺內(nèi)核發(fā)出來的信號來管理/dev 目錄下的設備文件
系統(tǒng)采用a~p來代表16塊不同的硬盤,分區(qū)編號的規(guī)則如下:
- 主分區(qū)或擴展分區(qū)的編號從1開始,到4結(jié)束
- 邏輯分區(qū)從編號5開始
| 硬件設備 | 文件名稱 |
|---|---|
| IDE 設備 | /dev/hd[a-d] |
| SCSI/STAT/U 盤 | /dev/sd[a-p] |
| 軟驅(qū) | /dev/fd[0-1] |
| 打印機 | /dev/lp[0-15] |
| 光驅(qū) | /dev/cdrom |
| 鼠標 | /dev/mouse |
| 磁帶機 | /dev/st0或/dev/ht0 |
文件系統(tǒng)
Ext3: 日志文件系統(tǒng),能夠在系統(tǒng)異常宕機時避免文件系統(tǒng)資料丟失,并能自動修復數(shù)據(jù)的不一致與錯誤
Ext4: Ext3的改進版本,提供支持1EB的存儲容量
XFS: 高性能的日志文件系統(tǒng),意外宕機可以快速恢復可能被破壞的文件,最大支持存儲容量為18EB
掛載硬件設備
mount
用于掛載文件系統(tǒng)
| 參數(shù) | 作用 |
|---|---|
| -a | 掛載所有在/etc/fstab中定義的文件系統(tǒng) |
| -t | 指定文件系統(tǒng)的類型 |
將設備/dev/sdb2 掛載到/backup 目錄
# mount /dev/sdb2 /backup
上訴代碼在重啟后,我們需要重新手動配置,永久配置需要修改/etc/fstab 文件
| 字段 | 意義 |
|---|---|
| 設備文件 | 一般為設備的路徑+設備名稱,也可以寫唯一識別碼 |
| 掛載目錄 | 指定要掛載到的目錄,需在掛載前創(chuàng)建好 |
| 格式類型 | 指定文件系統(tǒng)的格式,比如Ext3、Ext4、XFS、SWAP、iso9660 |
| 權限選項 | 若設置為defaults,則默認權限為:rw, suid, dev, exec, auto, nouser, async |
| 是否備份 | 若為1則開機后使用dnmp進行磁盤備份,為0則不備份 |
| 是否自檢 | 若為1則開機后進行磁盤自檢,為0則不自檢 |
將文件系統(tǒng)為ext4的硬件設備/dev/sdb2 開機后自動掛載到/backup目錄,并保持默認權限無需開機自檢,在/etc/fstab 文件中輸入以下信息
# vim /etc/fstab
etc...
/dev/sdb2 /backup ext4 defaults 0 0
umount
撤銷已掛載的設備文件
# umount /dev/sdb2
添加硬盤設備
fdisk
管理磁盤分區(qū)
| 參數(shù) | 作用 |
|---|---|
| m | 查看全部可用的參數(shù) |
| n | 添加新的分區(qū) |
| d | 刪除某個分區(qū)信息 |
| l | 列出所有可用的分區(qū)類型 |
| t | 改變某個分區(qū)的類型 |
| p | 查看分區(qū)信息 |
| w | 保存并退出 |
| q | 不保存直接退出 |
創(chuàng)建操作略
du
查看文件數(shù)據(jù)占有量
# du -sh /someDic/
33M /someDic/
添加交換分區(qū)
SWAP分區(qū)是一種通過在硬盤中預先劃分一定的空間,然后將把內(nèi)存中暫時不常用的數(shù)據(jù)臨時存放到硬盤中,一邊騰出物理空間讓更活躍的程序服務來使用的技術
<font color=red>在生產(chǎn)環(huán)境中,交換分區(qū)的大小一般為真實物理內(nèi)存的1.5~2倍</font>
這里對Swap增加5G,并永久生效
# mkswap /dev/sdb2
# swapon /dev/sdb2
# free -m
etc...
Swap: 7167 0 7167
# vim /etc/fstab
etc...
/dev/sdb2 swap swap defaults 0 0
磁盤容量配額
管理員使用磁盤容量配額服務來限制某位用戶或某個用戶組針對特定文件夾可以使用的最大硬盤空間或最大文件格式,一旦達到這個最大值就不再允許繼續(xù)使用
- 軟限制:當達到軟限制時會提示用戶,但仍允許用戶在限定的額度內(nèi)繼續(xù)使用
- 應顯示:當達到硬限制時會提示用戶,且強制終止用戶的操作
查看/boot 設置,并針對/boot目錄增加其他人的寫權限,保證用戶能夠正常寫入數(shù)據(jù)
# vim /etccc/fstab
etc...
UID /boot xfs defaults,uquota 1 2
# reboot
# mount | grep boot
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,usrquota)
# chmod -Rf o+w /boot
xfs_quota
專門針對XFS文件系統(tǒng)來管理quota從磁盤容量配額服務
硬盤使用量的軟限制和硬限制分別為3MB和6MB,從創(chuàng)建文件數(shù)量的軟限制和硬限制分別為3個和6個
# xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 linux' /boot
# xfs_quota -x -c report /boot
User quota on /boot (/dev/sda1) Blocks
User ID Used Soft Hard Warn/Garce
----------------------------------------
root 95084 0 0 00 [-------]
linux 0 3072 6144 00 [-------]
做好上述限制后,分別創(chuàng)建一個體積為5MB和8MB的文件,可以發(fā)現(xiàn)8MB的文件收到了系統(tǒng)限制
# su - linux
$ dd if=/dev/zero of=/boot/linux bs=5M count=1
1+0 records in
1+0 records out
5242880 bytes (5.2MB) copied, 0.12 s, 42.3MB/s
$ dd if=/dev/zero of=/boot/linux bs=8M count=1
dd: error writing '/boot/tom': Disk quota exceeded
1+0 records in
0+0 records out
etc...
edquota
編輯用戶的quota配額限制
把用戶linux的硬盤使用量的限額從5MB提升到8MB
# edquota -u linux
Disk quotas for user linux:
FileSystem blocks soft hard inodes soft hard
/dev/sda 6144 3072 8192 1 3 6
# su - linux
$ dd if=/dev/zero of=/boot/linux bs=8M count=1
etc...
軟硬方式鏈接
硬鏈接
可以理解為:指向原文件inode的指針,硬鏈接文件與原始文件其實就是同一個文件。我們每添加一個硬鏈接,該文件的inode連接數(shù)就會增加1,由于此特性,即便原始文件被刪除,依然可以通過硬鏈接文件來訪問。
<font color=red>需要注意的是,因技術限制,我們不能跨分區(qū)對目錄文件進行鏈接</font>
軟連接
也成為符號鏈接,僅包含所鏈接文件的路徑名,可以鏈接目錄文件,也可以跨文件系統(tǒng)進行鏈接。但是,如果源文件刪除后,鏈接文件也將失效
ln
創(chuàng)建鏈接文件
| 參數(shù) | 作用 |
|---|---|
| -s | 創(chuàng)建符號鏈接(如果不帶-s參數(shù),則默認創(chuàng)建硬鏈接) |
| -f | 強制創(chuàng)建文件或目錄鏈接 |
| -i | 覆蓋前先詢問 |
| -v | 顯示從創(chuàng)建鏈接的過程 |
創(chuàng)建一個軟鏈接,這樣當原始文件被刪除后,便無法讀取里面的內(nèi)容了
# ehoo "test" > test.txt
# ln -s test.txt readit.txt
# cat test.txt
test
# cat readit.txt
test
# ls -l test.txt
-rw-r--r-- 1 root root etc...
# rm -f test.txt
# cat readit.txt
cat: readit.txt: No such file of directory
創(chuàng)建一個硬鏈接,這樣不會因為原始文件被刪除而無法訪問,而且文件的硬盤鏈接數(shù)量增加到了2
# ehoo "test" > test.txt
# ln test.txt readit.txt
# cat test.txt
test
# cat readit.txt
test
# ls -l test.txt
-rw-r--r-- 2 root root etc...
# rm -f test.txt
# cat readit.txt
test