第一、關(guān)于df和du
1、df : 查看磁盤(pán)的容量
? 1)rootfs : 系統(tǒng)啟動(dòng)時(shí)內(nèi)核載入內(nèi)存之后,在掛載真正的磁盤(pán)之前的一
個(gè)臨時(shí)文件系統(tǒng),通常主機(jī)會(huì)在系統(tǒng)啟用后用磁盤(pán)上的文件系統(tǒng)替
換,而在一些嵌入式系統(tǒng)中只存在一個(gè)
2)Ramfs : 用于實(shí)現(xiàn)磁盤(pán)緩存機(jī)制作為動(dòng)態(tài)可調(diào)整大小的基于ram的文件系統(tǒng)
roofs通常是Ramfs或者tfpms的一個(gè)實(shí)例
3)/dev/sda2/:對(duì)應(yīng)著物理主機(jī)硬盤(pán)上的分區(qū) ? ?a:第幾塊硬盤(pán) ? 2:分區(qū)
號(hào)
4) 1k-block: ? 表示以磁盤(pán)塊大小的方式表示容量
5)df -h: 查看磁盤(pán)容量,容量以人能看懂的形式輸出 (K , M,G)
2、du ?:查看目錄的容量
du -h:以更容易讀的方式展出
-d ?:指定查看目錄的深度
eg:
du -h -d ? 數(shù)字n ? 目錄 :只查看(n+1)級(jí)目錄的信息
du -a :顯示目錄中所有文件大小
du -s :僅顯示總計(jì)
二、簡(jiǎn)單的磁盤(pán)管理
命令dd: ?用于轉(zhuǎn)換、復(fù)制文件、備份硬件的引導(dǎo)扇區(qū)、獲取一定數(shù)
量的隨機(jī)數(shù)據(jù)或空數(shù)據(jù)、在復(fù)制時(shí)處理數(shù)據(jù)(轉(zhuǎn)換字節(jié)序
和在 ASCII與EBCDIC編碼間互換等)
dd命令行語(yǔ)句: 選項(xiàng)=值,默認(rèn)從標(biāo)準(zhǔn)輸入中讀取,寫(xiě)入到標(biāo)準(zhǔn)輸出
可以改變:if(input ? file,輸入文件)
of(output file ,輸出文件)
從標(biāo)準(zhǔn)輸入中讀取,輸出到文件(不是默認(rèn)):
( ?注: ?bs : 指定塊大小 ? ? ? ?count:指定塊數(shù)量 ? )
1) dd of=輸出文件 ?bs=數(shù)字 ?count=數(shù)字
(dd后可以加 ?if=/dev/stdin)
2)在終端打字作為輸入
3)cat ? ?輸出文件 ? :終端輸出已輸入內(nèi)容
從標(biāo)準(zhǔn)輸入中讀取,則自動(dòng)輸出到標(biāo)準(zhǔn)輸出
1) dd ? if=/dev/stdin ?of=/dev/stdout ?bs=數(shù)字 count=數(shù)字
2) ? 在終端打字作為輸入
3) ?終端自動(dòng)輸出
注意: 若輸入內(nèi)容超過(guò)了設(shè)定大小,則超過(guò)的部分會(huì)被截取并保留在標(biāo)
標(biāo)準(zhǔn)輸入
將輸入的英文字符轉(zhuǎn)換為大寫(xiě)再寫(xiě)入文件:
dd ?if=輸入文件 ? of=輸出文件 ? bs=數(shù)字 ?count=數(shù)字 ?conv=ucase
關(guān)于loop:
? ?/dev/loop/:使得文件可以如同塊設(shè)備一般被訪問(wèn)的偽設(shè)備,將文件變?yōu)?/p>
設(shè)備文件
目的: ? ?一個(gè)包含完整文件系統(tǒng)的文件(設(shè)備文件)可以被掛載,循環(huán)
掛載來(lái)掛載包含文件系統(tǒng)的文件,使處在文件系統(tǒng)中的文件得以
被訪問(wèn)。
設(shè)備文件常被用作光盤(pán)或者磁盤(pán)鏡像。
設(shè)備文件出現(xiàn)在掛載點(diǎn)目錄,如果掛載目錄本身有文件,那這些
文件在掛載后被禁止使用。
(具體案例)
1、創(chuàng)建虛擬鏡像文件:
1) 從/dev/zero/設(shè)備創(chuàng)建一個(gè)容量為256M的空白文件:
dd ? if=/dev/zero ? of=virtual.img ?bs=1M ? count=256
2)查看輸出文件大小:
du ?-h ?virtual.img
2、將創(chuàng)建的文件格式化(寫(xiě)入文件系統(tǒng))
(將我們自己創(chuàng)建的虛擬磁盤(pán)鏡像格式化為ext4文件系統(tǒng))
sudo ?mkfs.ext4 ?virtual.img
附:
查看linux支持的文件系統(tǒng):
ls ?-l ? Pb/modules/$(uname -r)/kernel/fs
3、將磁盤(pán)掛載到目錄樹(shù)
掛載好的文件、目錄、設(shè)備、以及特殊文件可以提供給用戶使用
1) 查看主機(jī)已經(jīng)掛載的文件系統(tǒng):
sudo mount
->輸出結(jié)果每一行格式:
設(shè)備名 ? ?on ? 掛載點(diǎn) ? type ? 文件系統(tǒng)類型 ? ? 掛載選項(xiàng)(eg:只讀)
2)掛載創(chuàng)建的虛擬磁盤(pán)鏡像到/mnt 目錄:
mount ? -o ? loop ?-t ?ext4 ?virtual.img ? /mnt
以只讀方式掛載:
mount ? -o ? loop ?--ro ? ?virtual.img ? /mnt
(或者mount ? -o ? loop,ro ? ?virtual.img ? /mnt)
注:
mount的常用操作:
mount ?-o ?操作選項(xiàng) ?-t ? 文件系統(tǒng)類型 ? 【-w|--rw|--ro】
文件系統(tǒng)源 ?掛載點(diǎn)
可以省略文件系統(tǒng)類型,mount一般可以識(shí)別,-w|--rw|--ro為掛載選項(xiàng)
附: ?卸載已掛載磁盤(pán):
? ? ? sudo ?umount ?/mnt ? ? ?已掛載設(shè)備名或者掛載點(diǎn)
4、為磁盤(pán)分區(qū)
1)查看硬盤(pán)分區(qū)表信息:
sudo ?fdisk ?-l
->輸出結(jié)果包括: ?扇區(qū)大小 (磁盤(pán)上劃分區(qū)域)
I/O大小 ?(輸入輸出端口) 等
2)進(jìn)入磁盤(pán)分區(qū)模式:(分區(qū)前規(guī)劃好分區(qū)方案,這里為三個(gè)分區(qū))
sudo ? fdisk ? virtual.img
輸入P查看結(jié)果
5、建立鏡像與回環(huán)設(shè)備的關(guān)聯(lián)
sudo losetup ?/dev/loop/0 ? virtual.img
(如果設(shè)備忙,可以使用其他的回環(huán)設(shè)備)
附: ? ? ls ?/dev/loop* ? :查看所有回環(huán)設(shè)備
sudo ?losetup ? -d ? ?/dev/loop0 ?: ? 解除與回環(huán)設(shè)備的關(guān)聯(lián)
6、為各分區(qū)建立虛擬設(shè)備的映射
1)安裝kpartx工具:
sudo apt-get ? install kpartx
2)建立映射
sudo kpartx ?-av ? /dev/loop0
附: ? 取消映射: ?sudo kpartx ?-dv ? /dev/loop0
7、格式化各分區(qū)(前邊是格式化整個(gè)虛擬磁盤(pán)鏡像文件)
sudo ? mkfs.ext4 ?-q ? /dev/mapper/loop0...
(有幾個(gè)分區(qū)就格式化幾個(gè))
8、掛載虛擬磁盤(pán)
1) 新建幾個(gè)空目錄
mkdir ?-p ?/media7irtualdisk_{1..3}
2)掛載磁盤(pán)分區(qū)
sudo mount ? /dev/mapper/loop0p1 ? /media7irtualdisk_1
sudo mount ? /dev/mapper/loop0p1 ? /media7irtualdisk_2
sudo mount ? /dev/mapper/loop0p1 ? /media7irtualdisk_3
附:
卸載磁盤(pán)分區(qū):
sudo umount ? /dev/mapper/loop0p1
9、分區(qū)已完成,查看磁盤(pán)的分區(qū)情況
df ?-h
三、有趣打印
以一種動(dòng)物說(shuō)話的形式打印出一段話
1)安裝
sudo ?apt-get ? install cowsay
2)默認(rèn)情況下是一頭牛
cowsay ? ?一段話
3)加-l參數(shù) 可以選擇 所有支持的動(dòng)物(不僅動(dòng)物)
cowsay ?-l
4)選擇動(dòng)物種類打印
cowsay ?-f ? 動(dòng)物種類 ?一段話
附: ?可以和fortune ?一起使用
fortune ? ? | ? cowsay ? ?-f ? ?動(dòng)物種類
四 、作業(yè)
du ?-a ? ?-h ? -d ? 1 ?目錄 ?| sort
? ?
?
? ?