Linux基础(存储结构和磁盘划分)
一切從“/”開始
在Linux系統(tǒng)中,目錄、字符設(shè)備、塊設(shè)備、套接字、打印機(jī)等都被抽象成了文件,一切皆為件
與windows操作系統(tǒng)不同,Linux系統(tǒng)內(nèi)不存在C/D/E/F盤等,一切文件都是從根(/)目錄開始的
Linux系統(tǒng)中按照文件系統(tǒng)層次化標(biāo)準(zhǔn)(FHS)采用樹形結(jié)構(gòu)存放文件,以及定義了常見目錄的用途
Linux系統(tǒng)中的文件和目錄名稱是嚴(yán)格區(qū)分大小寫的,文件名稱不能包含斜杠(/)
Linux系統(tǒng)的文件存儲結(jié)構(gòu)
?前面提到的FHS是根據(jù)以往無數(shù)Linux系統(tǒng)用戶和開發(fā)者的經(jīng)驗而總結(jié)出來的,是用戶在Linux系統(tǒng)中存儲文件時需要遵守的規(guī)則,用于指導(dǎo)我們應(yīng)該把文件保存在什么位置,以及告訴用戶應(yīng)該在何處找到所需的文件
Linux系統(tǒng)中常見的目錄名稱以及相應(yīng)內(nèi)容
| 目錄名稱 | 應(yīng)放置文件的內(nèi)容 |
| /boot | 開機(jī)所需的文件——內(nèi)核、開機(jī)菜單以及所需配置文件等 |
| /dev | 以文件形式存放任何設(shè)備與接口 |
| /etc | 配置文件 |
| /home | 用戶家目錄 |
| /bin | 存放單用戶模式下還可以操作的命令 |
| /lib | 開機(jī)時用到的函數(shù)庫,以及/bin與/sbin下面的命令需要調(diào)用的函數(shù) |
| /sbin | 開機(jī)過程中需要的命令 |
| /media | 用于掛載設(shè)備文件的目錄 |
| /opt | 放置第三方軟件 |
| /root | 系統(tǒng)管理員的家目錄 |
| /srv | 一些網(wǎng)絡(luò)服務(wù)的數(shù)據(jù)文件目錄 |
| /tmp | 任何人均可使用的“共享”臨時目錄 |
| /proc | 虛擬文件系統(tǒng),例如系統(tǒng)內(nèi)核、進(jìn)程、外部設(shè)備及網(wǎng)絡(luò)狀態(tài)等 |
| /usr/local | 用戶自行安裝的軟件 |
| /usr/sbin | Linux系統(tǒng)開機(jī)時不會使用到的軟件/命令/腳本 |
| /usr/share | 幫助與說明文件,也可放置共享文件 |
| /var | 主要存放經(jīng)常變化的文件 |
| /lost+found | 當(dāng)文件系統(tǒng)發(fā)生錯誤時,將一些丟失的文件片段存放在這里 |
Linux系統(tǒng)中還有一概念——路徑
路徑指的是如何定位到某個文件,分為:絕對路徑? 和?? 相對路徑
絕對路徑指的是從根目錄(/)開始寫起的文件或目錄名稱
相對路徑指的是相對于當(dāng)前路徑的寫法
物理設(shè)備的命名規(guī)則
常見的硬件設(shè)備及其文件名稱
| 硬件設(shè)備 | 文件名稱 |
| IDE設(shè)備 | /dev/hd[a-d] |
| SCSI/SATA/U盤 | /dev/sd[a-p] |
| 軟驅(qū) | /dev/fd[0-1] |
| 打印機(jī) | /dev/lp[0-15] |
| 光驅(qū) | /dev/cdrom |
| 鼠標(biāo) | /dev/mouse |
| 磁帶機(jī) | /dev/st0或/dev/ht0 |
現(xiàn)在的IDE設(shè)備很少見了,所以一般的硬盤設(shè)備都會是以“/dev/sd”開頭的。
一臺主機(jī)上可以有多塊硬盤,因此采用a~p來代表16塊不同的硬盤(默認(rèn)從a開始分配)
硬盤的分區(qū)編號也有規(guī)則:
①主分區(qū)或擴(kuò)展分區(qū)的編號從1開始,到4結(jié)束
②邏輯分區(qū)從編號5開始
首先,/dev/目錄中保存的應(yīng)當(dāng)是硬件設(shè)備文件;其次,sd表示是存儲設(shè)備;然后,a表示系統(tǒng)中同類接口中第一個被識別到設(shè)備,最后,5表示這個設(shè)備是一個邏輯分區(qū)。
所謂擴(kuò)展分區(qū),嚴(yán)格上講它不是一個實際意義的分區(qū),它僅僅是一個指向下一個分區(qū)的指針,這種指針結(jié)構(gòu)將形成一個單向鏈表
硬盤分區(qū)的規(guī)劃
文件系統(tǒng)
最常見的文件系統(tǒng)如下:
Ext3:是一款日志文件系統(tǒng),能夠在系統(tǒng)異常死機(jī)時避免文件系統(tǒng)資料丟失,并能自動修復(fù)數(shù)據(jù)的不一致與錯誤
Ext4:Ext3的升級版,作為RHEL6系統(tǒng)中的默認(rèn)文件管理系統(tǒng),它支持的存儲容量高達(dá)1EB,且能夠有無限多的子目錄。另外,Ext4文件系統(tǒng)能夠批量分配block塊,從而極大地提高了讀寫效率
XFS:是一種高性能的日志文件系統(tǒng),而且是RHEL7中默認(rèn)的文件管理系統(tǒng),它的優(yōu)勢在發(fā)生意外死機(jī)后尤其明顯,即可以快速地恢復(fù)可能被破壞的文件,而且強(qiáng)大的日志功能只用花費極地的計算和存儲性能。最大可支持的存儲容量為18EB
掛載硬件設(shè)備
mount命令
mount命令用于掛載文件系統(tǒng)
格式為:mount 【文件系統(tǒng)】 掛載目錄
mount命令中可用的參數(shù)
| 參數(shù) | 作用 |
| -a | 掛載所有在/etc/fstab中定義的文件系統(tǒng) |
| -t | 指定文件系統(tǒng)的類型 |
掛載是在使用硬件設(shè)備前所執(zhí)行的最后一步操作
只需要用mount命令把硬盤設(shè)備或分區(qū)與一個目錄文件進(jìn)行關(guān)聯(lián),然后就能在這個目錄中看到硬件設(shè)備中的數(shù)據(jù)了
對于比較新的Linux系統(tǒng)來講,一般不需要使用-t參數(shù)來指定文件系統(tǒng)的類型,Linux系統(tǒng)會自動進(jìn)行判斷。
而mount命令中的-a參數(shù),它會在執(zhí)行后自動檢查/etc/fstab文件中有無疏漏被掛載的設(shè)備文件,如果有,則自動掛載操作
umount命令
umount命令用于撤銷已經(jīng)掛載的設(shè)備文件
格式為:umount 【掛載點/設(shè)備文件】
添加硬盤設(shè)備
fdisk命令
在Linux系統(tǒng)中,管理硬盤設(shè)備最常用的方法當(dāng)屬fdisk命令
格式為:fdisk 【磁盤名稱】
fdisk命令中的參數(shù)及其作用
| 參數(shù) | 作用 |
| -m | 查看全部可用的參數(shù) |
| -n | 添加新的分區(qū) |
| -d | 刪除某個分區(qū)的信息 |
| -l | 列出所有可用的分區(qū)類型 |
| -t | 改變某個分區(qū)的類型 |
| -p | 查看分區(qū)信息 |
| -w | 保存并退出 |
| -q | 不保存直接退出 |
我們先使用熟悉一下fdisk命令
fdisk -l?
fdisk /dev/nvme0n2? 分區(qū)
?我們輸入m,查看幫助
?輸入?yún)?shù)n嘗試添加新的分區(qū)。系統(tǒng)會要求您是選擇繼續(xù)輸入?yún)?shù)p,還是輸入?yún)?shù)e來創(chuàng)建擴(kuò)展分區(qū)。我們這里輸入?yún)?shù)p來創(chuàng)建一個主分區(qū)。
在確認(rèn)創(chuàng)建一個分區(qū)后,系統(tǒng)要求您先輸入主分區(qū)的編號。
主分區(qū)的編號:1-4
因此這里輸入默認(rèn)的1就行了,不輸入任何數(shù)字,系統(tǒng)自動選擇默認(rèn)值
接下來系統(tǒng)會提示定義起始的扇區(qū)位置,這不需要改動,我們直接回車鍵默認(rèn)即可,系統(tǒng)會自動算出最靠前的空閑扇區(qū)的位置
最后,系統(tǒng)會要求定義分區(qū)的結(jié)束扇區(qū),這其實就是要去定義整個分區(qū)的大小是多少
我們再次使用參數(shù)p來查看硬件設(shè)備中的分區(qū)信息
?我們設(shè)置好了以后,千萬記得輸入w參數(shù)進(jìn)行保存
在上述步驟完成后,Linux系統(tǒng)會自動把這個硬盤主分區(qū)抽象成文件
我們可用file命令查看該文件的屬性
如果沒有同步的話可用使用partprobe手動同步到內(nèi)核,輸入幾次后還沒同步,就重啟把
如果硬件存儲設(shè)備沒有進(jìn)行格式化,則Linux系統(tǒng)無法得知這么在其上寫入數(shù)據(jù)。因此,在對存儲設(shè)備進(jìn)行分區(qū)后還需進(jìn)行格式化。
在Linux系統(tǒng)中用于格式化操作的命令是:mkfs
格式:mkfs.文件類型名稱? 硬盤文件
簡單掛載一下
du命令
既然存儲設(shè)備已經(jīng)順利掛載,接下來就可嘗試通過掛載點目錄向存儲設(shè)備中寫入文件了
在寫入文件之前,先介紹用于查看文件數(shù)據(jù)占用量的du命令
格式為:du 【選項】【文件】
簡單來說就是查看硬盤空間的情況
我們先cp一些文件放入掛載目錄
命令行掛載后,設(shè)備文件會在下一次重啟的時候失效。如果想讓這個設(shè)備文件的掛載永久有效,則需要把掛載的信息寫入配置文件
?添加交換分區(qū)
SWAP(交換)分區(qū)是一種通過在硬盤中預(yù)先劃分一定發(fā)空間,然后將把內(nèi)存中暫時不常用的數(shù)據(jù)臨時存放在硬盤中,以便騰出物理內(nèi)存空間讓更活躍的程序服務(wù)來使用技術(shù),其設(shè)計目的是為了解決真實物理內(nèi)存不足的情況。但由于交換分區(qū)畢竟是通過硬盤設(shè)備讀寫數(shù)據(jù)的,速度肯定要比物理內(nèi)存慢,所以只有當(dāng)真實物理內(nèi)存耗盡后才會調(diào)用交換分區(qū)的資源。
交換分區(qū)的建立與掛載并使用存儲設(shè)備的過程很像
在生產(chǎn)環(huán)境中:交換分區(qū)的大小一般是真實物理內(nèi)存的1.5-2倍
使用SWAP分區(qū)專用的格式化命令? mkswap ,對新建的主分區(qū)進(jìn)行格式化操作:
使用swapon命令把準(zhǔn)備好的SWAP分區(qū)設(shè)備正式掛載到系統(tǒng)中。
我們可用free -m命令查看交換分區(qū)的大小
?為了能夠讓新的交換分區(qū)設(shè)備在重啟后依然生效,需要按照下面的格式將相關(guān)的信息寫入到配置文件中去,記得保存:
?磁盤容量配額
硬件資源是固定的有限的,如果某些用戶一直在Linux系統(tǒng)上創(chuàng)建文件或者存放電影,硬盤空間總有一天會被占滿。針對這種情況。root管理員就需要使用磁盤容量配額服務(wù)來限制某個用戶或者某個用戶組針對特定文件夾可使用的最大硬盤空間或最大文件個數(shù),一旦達(dá)到這個最大值就不再允許繼續(xù)使用。
可用使用quota命令來進(jìn)行管理,從而限制用戶的硬盤可用容量或所能創(chuàng)建的最大文件個數(shù)。
quora命令有兩種功能:
①軟限制:當(dāng)達(dá)到軟限制時會提示用戶,但仍允許用戶在限定的額度內(nèi)繼續(xù)使用
②硬限制:當(dāng)達(dá)到硬限制時會提示用戶,且強(qiáng)制終止用戶的操作
reboot之后
?接下來創(chuàng)建一個用于檢查quota磁盤容量配額效果的用戶tom,并針對/boot目錄增加其他人的寫權(quán)限,保證用戶能夠正常寫入數(shù)據(jù):
xfs-quota命令
xfs-quota命令是專門針對XFS文件系統(tǒng)來管理quota磁盤容量配額服務(wù)而設(shè)計的命令
格式: xfs-quota 【參數(shù)】配額 文件系統(tǒng)
當(dāng)配置好上述的各種軟硬限制后,嘗試切換到這個普通用戶,然后分別嘗試創(chuàng)建一個體積為5MB和8MB的文件,可發(fā)現(xiàn),在創(chuàng)建8MB的文件時受到了限制:
edquota命令
edquota命令用于編輯用戶的quota配額限制
格式為:edquota 【參數(shù)】【用戶】
在用戶設(shè)置了quota磁盤配額限制后,可用使用edquota命令按需修改限額的數(shù)值
其中
-u 參數(shù)表示要針對那個用戶
-g 參數(shù)表示要針對那個用戶組
edquota命令會調(diào)用Vi或Vim編輯器來讓root管理員修改要限制的具體細(xì)節(jié)
下面我們把tom的限額從5提到8MB
?軟硬方式鏈接
鏈接就像windows系統(tǒng)中的快捷方式一樣
①硬鏈接:硬鏈接文件與原始文件其實是同一個文件,只是名字不一樣。我們每添加一個硬鏈接,該文件的inode連接數(shù)就會加1,而且只有當(dāng)該文件inode連接數(shù)為0時,才能徹底刪除它。
②軟鏈接(符號鏈接):僅僅包含所鏈接文件的路徑名,因此能鏈接目錄。也可用跨越文件系統(tǒng)進(jìn)行鏈接,但是,當(dāng)原始文件刪除后,鏈接文件也將失效。這點和windows上的快捷方式一樣的性質(zhì)。
ln命令
ln命令用于創(chuàng)建鏈接文件
格式為:ln 【選項】目標(biāo)
Usage: ln [OPTION]... [-T] TARGET LINK_NAMEor: ln [OPTION]... TARGETor: ln [OPTION]... TARGET... DIRECTORYor: ln [OPTION]... -t DIRECTORY TARGET... In the 1st form, create a link to TARGET with the name LINK_NAME. In the 2nd form, create a link to TARGET in the current directory. In the 3rd and 4th forms, create links to each TARGET in DIRECTORY. Create hard links by default, symbolic links with --symbolic. By default, each destination (name of new link) should not already exist. When creating hard links, each TARGET must exist. Symbolic links can hold arbitrary text; if later resolved, a relative link is interpreted in relation to its parent directory.必選參數(shù)對長短選項同時適用。--backup[=CONTROL] 為每個已存在的目標(biāo)文件創(chuàng)建備份文件-b 類似--backup,但不接受任何參數(shù)-d, -F, --directory 創(chuàng)建指向目錄的硬鏈接(只適用于超級用戶)-f, --force 強(qiáng)行刪除任何已存在的目標(biāo)文件-i, --interactive prompt whether to remove destinations-L, --logical dereference TARGETs that are symbolic links-n, --no-dereference treat LINK_NAME as a normal file ifit is a symbolic link to a directory-P, --physical make hard links directly to symbolic links-r, --relative create symbolic links relative to link location-s, --symbolic make symbolic links instead of hard links-S, --suffix=SUFFIX override the usual backup suffix-t, --target-directory=DIRECTORY specify the DIRECTORY in which to createthe links-T, --no-target-directory treat LINK_NAME as a normal file always-v, --verbose print name of each linked file--help 顯示此幫助信息并退出--version 顯示版本信息并退出The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX. The version control method may be selected via the --backup option or through the VERSION_CONTROL environment variable. Here are the values:none, off 不進(jìn)行備份(即使使用了--backup 選項)numbered, t 備份文件加上數(shù)字進(jìn)行排序existing, nil 若有數(shù)字的備份文件已經(jīng)存在則使用數(shù)字,否則使用普通方式備份simple, never 永遠(yuǎn)使用普通方式備份Using -s ignores -L and -P. Otherwise, the last option specified controls behavior when a TARGET is a symbolic link, defaulting to -P.GNU coreutils 在線幫助:<https://www.gnu.org/software/coreutils/> 請向 <http://translationproject.org/team/zh_CN.html> 報告 ln 的翻譯錯誤 完整文檔請見:<https://www.gnu.org/software/coreutils/ln>?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Linux基础(存储结构和磁盘划分)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php报表数据打印机,通过打印机打印带打
- 下一篇: 凉皮用了底料还用不用放大料水凉皮用了凉皮