一、磁盤管理
1、 機械式硬碟:
U盤、CD光牒、軟碟、硬碟、錄音帶
2、 格式化:(Partition) 建立檔案系統
MBR:主引導記錄 (512byte)
Master Boot Record
Main Boot Record
446bye:BootLoader, 是一個程式。引導加載器
64bytes:
16bytes:辨別一個分區
2bytes:Magic Number
标記MBR是否有效。
3、硬連接配接和符号連接配接
硬連接配接:是指兩個存儲塊指向一個引導号
符号連接配接:(又叫軟連接配接)是指一個檔案指向另外一個檔案
建立連接配接 :ln [-s -v] SRC (源檔案) DEST(目标檔案)
ln SRC DEST 硬連接配接
ln -s SRC DEST 軟連接配接
硬連結特點:
1、隻能對檔案建立,不能應用于目錄;
2、不能跨檔案系統;
3、建立硬連結會增加檔案被連結的次數;
符号連結:
1、可應用于目錄;
2、可以跨檔案系統;
3、不會增加被連結檔案的連結次數;
4、其大小為指定的路徑所包含的字元個數;
du:
-s 檢視檔案的大小
-sh 檢視目錄的總容量
df : 顯示整個磁盤的分區情況

df -p -i
二、裝置檔案
b:塊裝置 按塊為機關,随機通路的裝置 (硬碟)
c:字元裝置 按字元為機關,線性裝置 (鍵盤)
/dev
主裝置号:(major number) 辨別裝置類型
次裝置号:(minor number) 辨別同一種類型中不同裝置
mknod
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
-m MODE
硬碟裝置的裝置檔案名:
IDE,ATA: hd
SATA:sd
SCSI:sd
USB:sd
a,b,c,... 來差別同一類型下的不同裝置
IDE:
第一個IDE口:主、從
/dev/hda , /dev/hdb
第二個IDE口:主、從
/dev/hdc , /dev/hdd
hda:
hda1:第一個分區
hda2:第二個分區
hda3:第三個分區
hda4:
hda5:第一個邏輯分區
檢視目前系統識别了幾塊硬碟: fdisk -l [/dev/to/some_device_file]
三、Linux支援的檔案系統
1、管理磁盤分區:
fdisk /dev/sda
p:顯示目前硬體的分區,包括沒有儲存的改動
n:建立新分區
e:擴充分區
p:主分區
d:删除一個分區
w:儲存退出
q:不儲存退出
t:修改分區類型
L:
l:顯示所有支援的所有類型
2、檔案系統管理
格式化分區:重新建立檔案系統會損壞原有檔案
mkfs:make file systemc
-t FSTYPE
檔案系統類型:
ext2
ext3
cat /proc/filesystems:檢視目前核心所支援檔案系統類型:
3、專門管理ext系列檔案:
mke2fs:
-j:建立ext3 類型檔案系統
-b BLOCK_SIZE : 指定塊大小,預設為 4096 可以取值為 1024 或2048或4096
-L LABEL:指定分區卷标
-m # :指定預留給超級使用者的塊數百分比
- i #:用于指定為多少位元組的空間建立一個 inode 預設為 8192 ,這裡給出的數值應該為塊大小的2^n 倍。
-N :指定inode個數;
-F :強制建立檔案系統
-E:使用者指定額外檔案系統屬性;
4、blkid:查詢或檢視磁盤裝置的相關屬性
UUID
TYPE
LABEL :檢視卷标
e2label :用于檢視或定義卷标
e2label 裝置檔案 卷标 :設定卷标
5、tune2fs:調整檔案系統的相關屬性
-j:不損害原有資料,将ext2 更新為ext3;
-L LABEL:設定或修改卷标
-m # :調整預留百分比
-r # :指定預留多少塊
-o :設定預設挂載選項;
-c # :指定挂載次數達到#次之後進行自檢, 0或-1 表示關閉此功能
-i # :每挂載使用多少天後進行自檢,0或-1 表示關閉此功能
-l: 顯示超級塊中的資訊;
dumpe2fs:顯示檔案屬性資訊
-h :隻顯示超級塊的資訊
fsck :檢查并修複Linux檔案系統
-t FSTYPE :指定檔案系統類型
-a :自動修複
e2fsck :專用于修複ext2/ext3 檔案系統
-f :強制檢查;
-p:自動修複
四、挂載與解除安裝
挂載:将新的檔案系統關聯至目前根檔案系統
解除安裝:将新的檔案系統從目前根檔案系統中移除。
mount:挂載
mount 裝置 挂載點
裝置:
裝置檔案: /dev/sda5
卷标:LABEL=“”
UUID: UUID=“”
挂載點:目錄
1、此目錄沒有被其他程序使用
2、目錄得事先存在
3、目錄中的原有的檔案将會被暫時隐藏。
mount:顯示目前系統已經挂載的裝置及挂載點
mount [options] [-o options] DEVICE MOUNT_POINT
-a:表示挂載/etc/fstab檔案中定義的所有檔案系統
-n:預設情況下,mount指令每挂載一個裝置,都會把挂載的裝置資訊儲存至/etc/mtab檔案;使用-n選項意味着挂載裝置時,不把資訊寫入此檔案。
-t FSTYPE:指定正在挂載裝置上的檔案系統的類型;不适用此選項事, mount會調用blkid指令擷取對應檔案系統的類型;
-r:隻讀挂載,挂載CD光牒時,常用此選項。
-w:讀寫挂載,一般預設是讀寫挂載
-o:指定額外的挂載選項,也既指定檔案系統啟用的屬性;
remount:重新挂載目前檔案系統
ro:挂載為隻讀
rw:讀寫挂載
挂載完成後,要通過挂載點通路對應檔案系統上的檔案。
umount:解除安裝某檔案系統
umount 裝置
umount 挂載點
解除安裝注意事項:
挂載的裝置沒有程序使用;
練習題:
1、調整其預留百分比為3%
tune2fs -m 3 -L DATA /dev/sda7
2、以重新挂載的方式挂載此檔案系統為不更新通路時間戳,并驗證其效果
stat /backup/inittab
cat /backup/inittab
stat
mount -o remount,noatime /backup
cat
3、對此檔案系統強行做一次檢測
e2fsck -f /dev/sda7
4、删除複制而來的所有檔案,并将此檔案系統重新挂載為同步(sync);而後在此複制/etc目錄中的所有檔案至此挂載點,體驗其性能變化:
rm -rf /dev/sda7
mount -o remount,sync /backup
cp -r /etc/* /backup
五、swap分區
free -m
fdisk指令中,調整分區類型為82:
建立交換分區:
mkswap /dev/sda8
-L LABEL
swapon /dev/sda8 :啟用這個分區的swap
swapoff /dev/sda8 :停用這個分區的swap
回環裝置:
loopback:使用軟體來模拟實作硬體
dd指令:轉化并複制一個檔案
if=輸入資料的來源
of=資料存儲目标
bs-1
count=2
seek=# :建立資料檔案時,跳過的空間大小;
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: 挂載本地回環裝置,是以可以挂載鏡像
mount /dev/sda5 /mnt/test
檔案系統的配置檔案: /etc/fstab
os在初始時,會自動挂載此檔案中定義的每個檔案系統
要挂載的裝置 挂載點 檔案系統類型 挂載選項 轉儲頻率(每多少天做一次完全備份) 檔案系統檢測次序(隻有根可以為1,0表示不檢查)
/dev/sda5 /mnt/test ext3 defaults 0 0
mount -a :挂載/etc/fstab 檔案中定義的所有檔案系統
fuser:驗證程序正在使用的檔案或套接字檔案
-v:檢視某檔案上正在運作的程序
-k:
-m
fuser -km MOUNT_POINT :終止正在通路此挂載點的所有程序。
練習:
1、建立一個5G的分區,檔案系統為ext3,卷标為MYDATA,塊大小為 1024,預留管理空間為磁盤分區的3%,要求開機後可以自動挂載至/data目錄,并且自動挂載的裝置要使用卷标進行引用:
2、建立一個本地回環檔案/var/swaptemp/swapfile來用于swap,要求大小為 512MB,卷标為SWAP—FILE ,且開機自動啟用此交換裝置:
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、上述第一問,如何讓其自動挂載的同時啟用ACL功能:
LABEL=‘MYDATA’ /data ext3 defaults,acl 0 0
六、壓縮、解壓縮指令
壓縮格式:gz ,bz2 ,xz ,zip ,Z
壓縮算法:算法不同,壓縮比也會不同
gzip: .gz
gzip /PATH/TO/SOMEFILE : 壓縮完成後會删除原檔案
-d:表示解壓縮,相當于 gunnzip
-# :1-9 ,指定壓縮比,預設是6
gunzip:
gunzip /PATH/TO/SOMEFILE.gz :解壓完成後會删除原檔案
zcat /PATH/TO/SOMEFILE.gz : 不解壓的情況下,檢視檔案的内容
bzip2 : .bz2
比gzip有着更大壓縮比的壓縮工具,使用格式近似
bzip2 /PATH/TO/SOMEFILE
-d:解壓縮
-#:1-9,預設是6
-k:壓縮時保留原檔案
bunzip2 /PATH/TO/SOMEFILE.bz2
bzcat /PATH/TO/SOMEFILE.bz2 :不解壓的情況下,檢視檔案的内容
xz: .xz
xz /PATH/TO/SOMEFILE
-d:表示解壓縮
-# :1-9,預設是6
-k :壓縮時保留原檔案
unxz:表示解壓縮
xzcat:表示不解壓檢視檔案内容
zip:既歸檔又壓縮的工具
zip FILENAME.zip FILE1 FILE2 ... : 壓縮後不删除源檔案
unzip FILENAME.zip
archive: 歸檔,歸檔本身并不意味着壓縮
tar:歸檔工具, .tar
-c:建立歸檔檔案
-f FILE.tar :操作的歸檔檔案
-x :展開歸檔,還原歸檔
--xattrs :歸檔時,保留檔案的擴充性資訊
-t :不展開歸檔,直接檢視歸檔了哪些檔案
-zcf:歸檔并調用gzip壓縮
-zxf:調用gzip解壓縮并展開歸檔
練習:寫一個腳本
從鍵盤讓使用者輸入幾個檔案,腳本能夠将此幾個檔案歸檔壓縮成一個檔案:
read:
-p “PROMPT”:給出提示
七、while語句
腳本程式設計:
順序結構
選擇結構
if
case
循環結構
for
while
until
while循環: 适用于循環次數未知的場景
文法:
while CONDITION;do
statement
...
done
練習: 顯示一個菜單給使用者:
d|D) show disk usages。
m|M) show memory usages。
s|S) show swap usages。
*)quit
當使用者給定選項後顯示相應的内容:
擴充:當使用者選擇完成,顯示相應資訊後,不推出,而讓使用者再一次選擇,再次顯示相應内容;除了使用者使用quit: