linux設(shè)備有3種類型:1、字符設(shè)備,是能夠像字節(jié)流一樣被訪問(wèn)的設(shè)備,當(dāng)對(duì)字符設(shè)備發(fā)出讀寫請(qǐng)求,相應(yīng)的IO操作立即發(fā)生,常見(jiàn)有字符終端、串口、鍵盤、鼠標(biāo)等。2、塊設(shè)備,是進(jìn)行TO操作時(shí)必須以塊為單位進(jìn)行訪問(wèn)的設(shè)備,常見(jiàn)有硬盤、軟驅(qū)等。3、網(wǎng)絡(luò)設(shè)備,由網(wǎng)絡(luò)子系統(tǒng)驅(qū)動(dòng),負(fù)責(zé)數(shù)據(jù)包的發(fā)送和接收。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
Linux設(shè)備或基于Linux的設(shè)備,是采用Linux內(nèi)核并可能部分GNU操作系統(tǒng)計(jì)算機(jī)設(shè)備。
Linux系統(tǒng)中設(shè)備有哪些類型
Linux系統(tǒng)中的設(shè)備可以分為字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備這三類。
1、字符設(shè)備
字符設(shè)備是能夠像字節(jié)流一樣被訪問(wèn)的設(shè)備,當(dāng)對(duì)字符設(shè)備發(fā)出讀寫請(qǐng)求,相應(yīng)的IO操作立即發(fā)生。Linux系統(tǒng)中很多設(shè)備都是字符設(shè)備,如字符終端、串口、鍵盤、鼠標(biāo)等。在嵌入式Linux開發(fā)中,接觸最多的就是字符設(shè)備以及驅(qū)動(dòng)。
2、塊設(shè)備
塊設(shè)備是Linux系統(tǒng)中進(jìn)行TO操作時(shí)必須以塊為單位進(jìn)行訪問(wèn)的設(shè)備,塊設(shè)備能夠安裝文件系統(tǒng)。塊設(shè)備驅(qū)動(dòng)會(huì)利用一塊系統(tǒng)內(nèi)存作為緩沖區(qū),因此對(duì)塊設(shè)備發(fā)出讀寫訪問(wèn),并不一定立即產(chǎn)生硬件I/O操作。Linux系統(tǒng)中常見(jiàn)的塊設(shè)備有如硬盤、軟驅(qū)等等。
3、網(wǎng)絡(luò)設(shè)備
網(wǎng)絡(luò)設(shè)備既可以是網(wǎng)卡這樣的硬件設(shè)備,也可以是一個(gè)純軟件設(shè)備如回環(huán)設(shè)備。網(wǎng)絡(luò)設(shè)備由Linux的網(wǎng)絡(luò)子系統(tǒng)驅(qū)動(dòng),負(fù)責(zé)數(shù)據(jù)包的發(fā)送和接收,而不是面向流設(shè)備,因此在Linux系統(tǒng)文件系統(tǒng)中網(wǎng)絡(luò)設(shè)備沒(méi)有節(jié)點(diǎn)。對(duì)網(wǎng)絡(luò)設(shè)備的訪問(wèn)是通過(guò)socket調(diào)用產(chǎn)生,而不是普通的文件操作如open/closc和read/write等。
linux查看塊設(shè)備信息
在linux中,可以使用lsblk命令來(lái)查看塊設(shè)備信息。
lsblk命令的英文是“l(fā)ist block”,即用于列出所有可用塊設(shè)備的信息,而且還能顯示他們之間的依賴關(guān)系,但是它不會(huì)列出RAM盤的信息。塊設(shè)備有硬盤,閃存盤,CD-ROM等等。lsblk命令包含在util-linux-ng包中,現(xiàn)在該包改名為util-linux。
lsblk命令有幾個(gè)選項(xiàng):
默認(rèn)選項(xiàng)
lsblk命令默認(rèn)情況下將以樹狀列出所有塊設(shè)備。打開終端,并輸入以下命令:
$ lsblk
輸出如下:
lsblk default lsblk default
7個(gè)欄目名稱如下:
NAME : 這是塊設(shè)備名。 MAJ:MIN : 本欄顯示主要和次要設(shè)備號(hào)。 RM : 本欄顯示設(shè)備是否可移動(dòng)設(shè)備。注意,在本例中設(shè)備sdb和sr0的RM值等于1,這說(shuō)明他們是可移動(dòng)設(shè)備。 SIZE : 本欄列出設(shè)備的容量大小信息。例如298.1G表明該設(shè)備大小為298.1GB,而1K表明該設(shè)備大小為1KB。 RO : 該項(xiàng)表明設(shè)備是否為只讀。在本案例中,所有設(shè)備的RO值為0,表明他們不是只讀的。 TYPE :本欄顯示塊設(shè)備是否是磁盤或磁盤上的一個(gè)分區(qū)。在本例中,sda和sdb是磁盤,而sr0是只讀存儲(chǔ)(rom)。(LCTT譯注,此處sr0的RO項(xiàng)沒(méi)有標(biāo)記為1,可能存在一些錯(cuò)誤?) MOUNTPOINT : 本欄指出設(shè)備掛載的掛載點(diǎn)。
列出所有設(shè)備:
默認(rèn)選項(xiàng)不會(huì)列出所有空設(shè)備。要查看這些空設(shè)備,請(qǐng)使用以下命令:
$ lsblk -a
該選項(xiàng)將列出所有設(shè)備,包括空設(shè)備在內(nèi)。
lsblk bytes sda
lsblk bytes sda
列出設(shè)備權(quán)限和屬主:
lsblk命令也可以用于列出一個(gè)特定設(shè)備的擁有關(guān)系,同時(shí)也可以列出組和模式??梢酝ㄟ^(guò)以下命令來(lái)獲取這些信息:
$ lsblk -m lsblk permissions lsblk permissions
列出指定設(shè)備:
該命令也可以只獲取指定設(shè)備的信息。這可以通過(guò)在提供給lsblk命令的選項(xiàng)后指定設(shè)備名來(lái)實(shí)現(xiàn)。例如,你可能對(duì)了解以字節(jié)顯示你的磁盤驅(qū)動(dòng)器大小比較感興趣,那么你可以通過(guò)運(yùn)行以下命令來(lái)實(shí)現(xiàn):
$ lsblk -b /dev/sda
或者,以下命令等同:
$ lsblk --bytes /dev/sda
以列表形式列出不帶頭的設(shè)備:
你也可以組合幾個(gè)選項(xiàng)來(lái)獲取指定的輸出。例如,你也許想要以列表格式列出設(shè)備,而不是默認(rèn)的樹狀格式。你可能也對(duì)移除不同欄目名稱的標(biāo)題感興趣??梢詫蓚€(gè)不同的選項(xiàng)組合,以獲得期望的輸出,命令如下:
$ lsblk -nl
或者,你可以使用下面的長(zhǎng)選項(xiàng),它們也能給出相同的輸出。
$ lsblk --noheadings --list lsblk no header and list lsblk no header and list
列出SCSI設(shè)備:
要獲取SCSI設(shè)備的列表,你只能使用-S選項(xiàng)。該選項(xiàng)是大寫字母S,不能和-s選項(xiàng)混淆,該選項(xiàng)是用來(lái)以顛倒的順序打印依賴的。
$ lsblk -S
lsblk列出SCSI設(shè)備,而-s是逆序選項(xiàng)(LCTT譯注:將設(shè)備和分區(qū)的組織關(guān)系逆轉(zhuǎn)過(guò)來(lái)顯示),其將給出如下輸出。輸入命令:
$ lsblk -s
或者
$ lsblk --inverse
你可以使用lsblk來(lái)獲取關(guān)于你的塊設(shè)備的