一、磁盤(pán)管理
1、 機(jī)械式硬盤(pán):
U盤(pán)、光盤(pán)、軟盤(pán)、硬盤(pán)、磁帶
2、 格式化:(Partition) 創(chuàng)建文件系統(tǒng)
MBR:主引導(dǎo)記錄 (512byte)
Master Boot Record
Main Boot Record
446bye:BootLoader, 是一個(gè)程序。引導(dǎo)加載器
64bytes:
16bytes:標(biāo)識(shí)一個(gè)分區(qū)
2bytes:Magic Number
標(biāo)記MBR是否有效。
3、硬連接和符號(hào)連接
硬連接:是指兩個(gè)存儲(chǔ)塊指向一個(gè)引導(dǎo)號(hào)
符號(hào)連接:(又叫軟連接)是指一個(gè)文件指向另外一個(gè)文件
創(chuàng)建連接 :ln [-s -v] SRC (源文件) DEST(目標(biāo)文件)
ln SRC DEST 硬連接
ln -s SRC DEST 軟連接
硬鏈接特點(diǎn):
1、只能對(duì)文件創(chuàng)建,不能應(yīng)用于目錄;
2、不能跨文件系統(tǒng);
3、創(chuàng)建硬鏈接會(huì)增加文件被鏈接的次數(shù);
符號(hào)鏈接:
1、可應(yīng)用于目錄;
2、可以跨文件系統(tǒng);
3、不會(huì)增加被鏈接文件的鏈接次數(shù);
4、其大小為指定的路徑所包含的字符個(gè)數(shù);
du:
-s 查看文件的大小
-sh 查看目錄的總?cè)萘?/p>
df : 顯示整個(gè)磁盤(pán)的分區(qū)情況
df -p -i
二、設(shè)備文件
b:塊設(shè)備 按塊為單位,隨機(jī)訪問(wèn)的設(shè)備 (硬盤(pán))
c:字符設(shè)備 按字符為單位,線性設(shè)備 (鍵盤(pán))
/dev
主設(shè)備號(hào):(major number) 標(biāo)識(shí)設(shè)備類(lèi)型
次設(shè)備號(hào):(minor number) 標(biāo)識(shí)同一種類(lèi)型中不同設(shè)備
mknod
mknod [OPTION]… NAME TYPE [MAJOR MINOR]
-m MODE
硬盤(pán)設(shè)備的設(shè)備文件名:
IDE,ATA: hd
SATA:sd
SCSI:sd
USB:sd
a,b,c,… 來(lái)區(qū)別同一類(lèi)型下的不同設(shè)備
IDE:
第一個(gè)IDE口:主、從
/dev/hda , /dev/hdb
第二個(gè)IDE口:主、從
/dev/hdc , /dev/hdd
hda:
hda1:第一個(gè)分區(qū)
hda2:第二個(gè)分區(qū)
hda3:第三個(gè)分區(qū)
hda4:
hda5:第一個(gè)邏輯分區(qū)
查看當(dāng)前系統(tǒng)識(shí)別了幾塊硬盤(pán): fdisk -l [/dev/to/some_device_file]
三、Linux支持的文件系統(tǒng)
1、管理磁盤(pán)分區(qū):
fdisk /dev/sda
p:顯示當(dāng)前硬件的分區(qū),包括沒(méi)有保存的改動(dòng)
n:創(chuàng)建新分區(qū)
e:擴(kuò)展分區(qū)
p:主分區(qū)
d:刪除一個(gè)分區(qū)
w:保存退出
q:不保存退出
t:修改分區(qū)類(lèi)型
L:
l:顯示所有支持的所有類(lèi)型
2、文件系統(tǒng)管理
格式化分區(qū):重新創(chuàng)建文件系統(tǒng)會(huì)損壞原有文件
mkfs:make file systemc
-t FSTYPE
文件系統(tǒng)類(lèi)型:
ext2
ext3
cat /proc/filesystems:查看當(dāng)前內(nèi)核所支持文件系統(tǒng)類(lèi)型:
3、專(zhuān)門(mén)管理ext系列文件:
mke2fs:
-j:創(chuàng)建ext3 類(lèi)型文件系統(tǒng)
-b BLOCK_SIZE : 指定塊大小,默認(rèn)為 4096 可以取值為 1024 或2048或4096
-L LABEL:指定分區(qū)卷標(biāo)
-m # :指定預(yù)留給超級(jí)用戶的塊數(shù)百分比
– i #:用于指定為多少字節(jié)的空間創(chuàng)建一個(gè) inode 默認(rèn)為 8192 ,這里給出的數(shù)值應(yīng)該為塊大小的2^n 倍。
-N :指定inode個(gè)數(shù);
-F :強(qiáng)制創(chuàng)建文件系統(tǒng)
-E:用戶指定額外文件系統(tǒng)屬性;
4、blkid:查詢(xún)或查看磁盤(pán)設(shè)備的相關(guān)屬性
UUID
TYPE
LABEL :查看卷標(biāo)
e2label :用于查看或定義卷標(biāo)
e2label 設(shè)備文件 卷標(biāo) :設(shè)定卷標(biāo)
5、tune2fs:調(diào)整文件系統(tǒng)的相關(guān)屬性
-j:不損害原有數(shù)據(jù),將ext2 升級(jí)為ext3;
-L LABEL:設(shè)定或修改卷標(biāo)
-m # :調(diào)整預(yù)留百分比
-r # :指定預(yù)留多少塊
-o :設(shè)定默認(rèn)掛載選項(xiàng);
-c # :指定掛載次數(shù)達(dá)到#次之后進(jìn)行自檢, 0或-1 表示關(guān)閉此功能
-i # :每掛載使用多少天后進(jìn)行自檢,0或-1 表示關(guān)閉此功能
-l: 顯示超級(jí)塊中的信息;
dumpe2fs:顯示文件屬性信息
-h :只顯示超級(jí)塊的信息
fsck :檢查并修復(fù)Linux文件系統(tǒng)
-t FSTYPE :指定文件系統(tǒng)類(lèi)型
-a :自動(dòng)修復(fù)
e2fsck :專(zhuān)用于修復(fù)ext2/ext3 文件系統(tǒng)
-f :強(qiáng)制檢查;
-p:自動(dòng)修復(fù)
四、掛載與卸載
掛載:將新的文件系統(tǒng)關(guān)聯(lián)至當(dāng)前根文件系統(tǒng)
卸載:將新的文件系統(tǒng)從當(dāng)前根文件系統(tǒng)中移除。
mount:掛載
mount 設(shè)備 掛載點(diǎn)
設(shè)備:
設(shè)備文件: /dev/sda5
卷標(biāo):LABEL=“”
UUID: UUID=“”
掛載點(diǎn):目錄
1、此目錄沒(méi)有被其他進(jìn)程使用
2、目錄得事先存在
3、目錄中的原有的文件將會(huì)被暫時(shí)隱藏。
mount:顯示當(dāng)前系統(tǒng)已經(jīng)掛載的設(shè)備及掛載點(diǎn)
mount [options] [-o options] DEVICE MOUNT_POINT
-a:表示掛載/etc/fstab文件中定義的所有文件系統(tǒng)
-n:默認(rèn)情況下,mount命令每掛載一個(gè)設(shè)備,都會(huì)把掛載的設(shè)備信息保存至/etc/mtab文件;使用-n選項(xiàng)意味著掛載設(shè)備時(shí),不把信息寫(xiě)入此文件。
-t FSTYPE:指定正在掛載設(shè)備上的文件系統(tǒng)的類(lèi)型;不適用此選項(xiàng)事, mount會(huì)調(diào)用blkid命令獲取對(duì)應(yīng)文件系統(tǒng)的類(lèi)型;
-r:只讀掛載,掛載光盤(pán)時(shí),常用此選項(xiàng)。
-w:讀寫(xiě)掛載,一般默認(rèn)是讀寫(xiě)掛載
-o:指定額外的掛載選項(xiàng),也既指定文件系統(tǒng)啟用的屬性;
remount:重新掛載當(dāng)前文件系統(tǒng)
ro:掛載為只讀
rw:讀寫(xiě)掛載
掛載完成后,要通過(guò)掛載點(diǎn)訪問(wèn)對(duì)應(yīng)文件系統(tǒng)上的文件。
umount:卸載某文件系統(tǒng)
umount 設(shè)備
umount 掛載點(diǎn)
卸載注意事項(xiàng):
掛載的設(shè)備沒(méi)有進(jìn)程使用;
練習(xí)題:
1、調(diào)整其預(yù)留百分比為3%
tune2fs -m 3 -L DATA /dev/sda7
2、以重新掛載的方式掛載此文件系統(tǒng)為不更新訪問(wèn)時(shí)間戳,并驗(yàn)證其效果
stat /backup/inittab
cat /backup/inittab
stat
mount -o remount,noatime /backup
cat
stat
3、對(duì)此文件系統(tǒng)強(qiáng)行做一次檢測(cè)
e2fsck -f /dev/sda7
4、刪除復(fù)制而來(lái)的所有文件,并將此文件系統(tǒng)重新掛載為同步(sync);而后在此復(fù)制/etc目錄中的所有文件至此掛載點(diǎn),體驗(yàn)其性能變化:
rm -rf /dev/sda7
mount -o remount,sync /backup
cp -r /etc/* /backup
五、swap分區(qū)
free -m
fdisk命令中,調(diào)整分區(qū)類(lèi)型為82:
創(chuàng)建交換分區(qū):
mkswap /dev/sda8
-L LABEL
swapon /dev/sda8 :啟用這個(gè)分區(qū)的swap
swapoff /dev/sda8 :停用這個(gè)分區(qū)的swap
回環(huán)設(shè)備:
loopback:使用軟件來(lái)模擬實(shí)現(xiàn)硬件
dd命令:轉(zhuǎn)化并復(fù)制一個(gè)文件
if=輸入數(shù)據(jù)的來(lái)源
of=數(shù)據(jù)存儲(chǔ)目標(biāo)
bs-1
count=2
seek=# :創(chuàng)建數(shù)據(jù)文件時(shí),跳過(guò)的空間大??;
dd if=/dev/sad of=/mnt/usb/mbr.backup bs=512 count=1
dd if =/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1
cat /dev/cdrom > /root/rhe15.iso 制作鏡像
mount命令:可以掛載iso鏡像:
mount DEVICE MOUNT_POINT
-o loop: 掛載本地回環(huán)設(shè)備,因此可以掛載鏡像
mount /dev/sda5 /mnt/test
文件系統(tǒng)的配置文件: /etc/fstab
os在初始時(shí),會(huì)自動(dòng)掛載此文件中定義的每個(gè)文件系統(tǒng)
要掛載的設(shè)備 掛載點(diǎn) 文件系統(tǒng)類(lèi)型 掛載選項(xiàng) 轉(zhuǎn)儲(chǔ)頻率(每多少天做一次完全備份) 文件系統(tǒng)檢測(cè)次序(只有根可以為1,0表示不檢查)
/dev/sda5 /mnt/test ext3 defaults 0 0
mount -a :掛載/etc/fstab 文件中定義的所有文件系統(tǒng)
fuser:驗(yàn)證進(jìn)程正在使用的文件或套接字文件
-v:查看某文件上正在運(yùn)行的進(jìn)程
-k:
-m
fuser -km MOUNT_POINT :終止正在訪問(wèn)此掛載點(diǎn)的所有進(jìn)程。
練習(xí):
1、創(chuàng)建一個(gè)5G的分區(qū),文件系統(tǒng)為ext3,卷標(biāo)為MYDATA,塊大小為 1024,預(yù)留管理空間為磁盤(pán)分區(qū)的3%,要求開(kāi)機(jī)后可以自動(dòng)掛載至/data目錄,并且自動(dòng)掛載的設(shè)備要使用卷標(biāo)進(jìn)行引用:
2、創(chuàng)建一個(gè)本地回環(huán)文件/var/swaptemp/swapfile來(lái)用于swap,要求大小為 512MB,卷標(biāo)為SWAP—FILE ,且開(kāi)機(jī)自動(dòng)啟用此交換設(shè)備:
mkdir /var/swaptemp
dd if=/dev/zero of=/var/swaptemp/swapfile bs=1M count=512
mkswap LABLE=SWAP-FILE /var/swaptemp/swapfile
/etc/fstab
/var/swaptemp/swapfile swap swap defaults 0 0
3、上述第一問(wèn),如何讓其自動(dòng)掛載的同時(shí)啟用ACL功能:
/etc/fstab
LABEL=‘MYDATA’ /data ext3 defaults,acl 0 0
六、壓縮、解壓縮命令
壓縮格式:gz ,bz2 ,xz ,zip ,Z
壓縮算法:算法不同,壓縮比也會(huì)不同
gzip: .gz
gzip /PATH/TO/SOMEFILE : 壓縮完成后會(huì)刪除原文件
-d:表示解壓縮,相當(dāng)于 gunnzip
-# :1-9 ,指定壓縮比,默認(rèn)是6
gunzip:
gunzip /PATH/TO/SOMEFILE.gz :解壓完成后會(huì)刪除原文件
zcat /PATH/TO/SOMEFILE.gz : 不解壓的情況下,查看文件的內(nèi)容
bzip2 : .bz2
比gzip有著更大壓縮比的壓縮工具,使用格式近似
bzip2 /PATH/TO/SOMEFILE
-d:解壓縮
-#:1-9,默認(rèn)是6
-k:壓縮時(shí)保留原文件
bunzip2 /PATH/TO/SOMEFILE.bz2
bzcat /PATH/TO/SOMEFILE.bz2 :不解壓的情況下,查看文件的內(nèi)容
xz: .xz
xz /PATH/TO/SOMEFILE
-d:表示解壓縮
-# :1-9,默認(rèn)是6
-k :壓縮時(shí)保留原文件
unxz:表示解壓縮
xzcat:表示不解壓查看文件內(nèi)容
zip:既歸檔又壓縮的工具
zip FILENAME.zip FILE1 FILE2 … : 壓縮后不刪除源文件
unzip FILENAME.zip
archive: 歸檔,歸檔本身并不意味著壓縮
tar:歸檔工具, .tar
-c:創(chuàng)建歸檔文件
-f FILE.tar :操作的歸檔文件
-x :展開(kāi)歸檔,還原歸檔
–xattrs :歸檔時(shí),保留文件的擴(kuò)展性信息
-t :不展開(kāi)歸檔,直接查看歸檔了哪些文件
-zcf:歸檔并調(diào)用gzip壓縮
-zxf:調(diào)用gzip解壓縮并展開(kāi)歸檔
練習(xí):寫(xiě)一個(gè)腳本
從鍵盤(pán)讓用戶輸入幾個(gè)文件,腳本能夠?qū)⒋藥讉€(gè)文件歸檔壓縮成一個(gè)文件:
read:
-p “PROMPT”:給出提示
七、while語(yǔ)句
腳本編程:
順序結(jié)構(gòu)
選擇結(jié)構(gòu)
if
case
循環(huán)結(jié)構(gòu)
for
while
until
while循環(huán): 適用于循環(huán)次數(shù)未知的場(chǎng)景
語(yǔ)法:
while CONDITION;do
statement
…
done