系統調用
Linux支持的文件系統:
位於內核空間中的文件系統驅動
1.內核一部分
2.內核模塊
位於用戶空間中的文件系統管理應用程序
管理命令
Linux自己的文件系統:
ext ext2 ext3 ext4(最大分區50TB,可以做根分區,可以做啓動分區)
xfs(企業級64位文件系統,最大分區500TB,可以做根和啓動分區)
reiserfs(良好的反刪除功能)
btrfs(技術預覽版)
光盤文件系統:iso9660
網絡文件系統:NFS、CIFS
集羣文件系統:gfs2、ocfs2
內核級的分佈式文件系統:ceph
僞文件系統:proc、sysfs、tmpfs、hugepagefs
windows的文件系統:vfat,ntfs
Unix的文件系統:ufs,FFS,JFS,zfs
交換分區文件系統:swap
用戶空間中的分佈式文件系統:mogilefs,moosefs,glusterfs
對於不同的發行版的Linux,都有其默認的文件系統選擇:
RHEL、CentOS
5:ext3
6:ext4
7:xfs
文件系統的管理工具:
寫一個腳本,如果發現用戶hacker登錄,則將登錄時間和主機記錄於日誌/var/log/login.log中;
#!/bin/bash
#
if who | grep -q "\<hacker\>" ; then
for I in $(who | grep "\<hacker\>" | cut -d ' ' -f3-5 --output-delimiter=' '); do
echo -n $I >> /var/log/login.log
done
fi
管理文件系統:
創建文件系統:
mkfs
mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.xfs, mkfs.btrfs, ...
文件系統檢測和修復工具
fsck
fsck.ext3, fsxk.ext3, fsck.ext4, fsck.xfs, ...
文件系統屬性查看工具
dumpe2fs
文件系統的屬性調整工具
tune2fs
創建文件系統工具:
mkfs命令:
mkfs - build a Linux filesystem
mkfs [options] [-t type] [fs-options] device [size]
mkfs -t ext2 /dev/sdb1
注意:
1.不要使用磁盤設備名稱和擴展分區設備名稱作爲mkfs命令的參數;
如果使用磁盤設備作爲mkfs的參數,所有的分區都將被刪除
如果使用擴展分區作爲mkfs的參數,所有的邏輯分區都將被刪除
2.能夠作爲mkfs命令參數的設備,是主分區設備和邏輯分區設備;
如果只是計劃創建ext系列文件系統的話,可以使用mke2fs命令:
mke2fs:
mke2fs - create an ext2/ext3/ext4 filesystem
常用選項:
-b block-size:在創建文件系統時,調整塊大小;
-i bytes-per-inode:指明inode與字節的比率,即:多少個字節可以建一個inode,默認值爲16384;
-j:創建有日誌功能的文件系統,就是ext3
-N number-of-inodes:直接指明要給此文件系統創建的inode的數量;
-m reserved-blocks-percentage:指定爲超級用戶root預留的磁盤空間的百分比;默認是5;
-t fstype:指定文件系統類型,ext2 ext3 ext4,默認是ext2
-O [^]feature[,...]:關閉或開啓文件系統的特性
-L volume-label:爲文件系統指定卷標
如果只計劃修改ext系列文件系統的卷標,可以使用e2label命令:
e2label:
e2label - Change the label on an ext2/ext3/ext4 filesystem
e2label device [ new-label ]
注意:如果不加捲標信息,表示查看指定設備的卷標;
如果添加了卷標信息, 表示修改指定設備的卷標;
如果想要修改ext系列文件系統的屬性,可以使用tune2fs命令:
tune2fs:
tune2fs - adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems
調整那些在ext2,3,4文件系統上的可修改的參數;
常用選項:
-j:將ext2文件系統修改爲ext3;
-m reserved-blocks-percentage:修改爲超級用戶預留的磁盤空間的百分比;
-o [^]mount-options[,...]:修改文件系統的默認掛載選項;
-r reserved-blocks-count:修改爲超級用戶預留的磁盤空間的塊的數量;
-L volume-name:修改文件系統的卷標
-O [^]feature[,...]:修改文件系統的特性,將其關閉或啓用;
-l:顯示超級塊的內容 相當於dumpe2fs -h
文件系統的檢測修改工具:
fsck
-t fstype:指定要檢測的文件系統類型;
-a:無需交互,自動修復所有問題
-r:交互式修復問題
ext系列文件系統專門的檢測修復工具:
e2fsck
-y:在交互過程的所有的問題,都以"yes"回答;
-f:強制檢測修復;即使文件系統處於clean狀態;
blkid:
blkid - command-line utility to locate/print block device attributes
blkid -L label:根據卷標進行查找
blkid -U uuid:根據UUID進行查找
findfs:
findfs - Find a filesystem by label or UUID
findfs LABEL=label
findfs UUID=uuid
創建swap文件系統
前提:分區類型必須是swap類型
修改的方法是:在fdisk交互模式中,使用t命令將指定分區的類型修改爲82即可;
mkswap
mkswap - set up a Linux swap area
-L LABEL:設置交互分區的卷標
-f:強制執行
使用文件系統——掛載
FHS
根文件系統之外的其他文件系統如果想要被訪問;都必須通過某種方式關聯到根文件系統上,具體做法就是把其他文件系統裝載到根文件系統中的某個目錄之中;這個過程稱爲"掛載";用於關聯其他文件系統的那個目錄,稱爲掛載點;
掛載點:mount point,也是其他文件系統的訪問入口;例如:/boot
要求:
1.作爲掛載點的目錄必須事先存在;
2.作爲掛載點的目錄應該是沒有被使用或不能被其他進程使用的目錄;
3.作爲掛載點的目錄一旦掛載文件系統,其內原有的文件將被隱藏;
完成掛載操作,使用mount命令:
mount
mount - mount a filesystem
mount [-fnrsvw] [-t vfstype] [-o options] device dir
常用選項:
-r:readonly,以只讀的方式掛載目標文件系統;光盤
-w:read and write,以讀寫的方式掛載目標文件系統;
-n:默認情況下,設備掛載或卸載的操作會同步更新到/etc/mtab中,如果在掛載時使用了-n選項,則表示我們要禁用此特性,即便掛載成功,也不會更新到/etc/mtab中。
-t vsftype:指明要掛載的設備上創建的文件系統類型;如果省略該選項,mount命令會通過blkid來判斷要掛載的目標設備的文件系統類型;
-L LABEL:掛載文件系統時,使用卷標代替設備名稱
-U UUID:掛載文件系統時,使用UUID代替設備名稱
-a:mount -a:按照/etc/fstab文件中填寫的設備進行自動掛載;
-o option:
sync/nosync:同步/異步操作
atime/noatime:文件或目錄被讀取訪問時,是否更新訪問時間戳;
diratime/nodiratime:目錄被讀取訪問時,是否更新訪問時間戳;
ro/rw:是以只讀/讀寫的方式掛載文件系統;
dev/nodev:在此文件系統中是否允許創建設備文件;
exec/noexec:在此文件系統中是否允許運行程序文件;
auto/noauto:是否允許使用mount -a方式掛載/etc/fstab中的文件系統;
user/nouser:是否允許普通用戶掛載此文件系統;
suid/nosuid:是否允許程序文件上的SUID和SGID特殊權限生效;
relatime/norelatime:是否參考inode訪問時間來修改其修改時間和改變時間
remount:不經卸載實現重新掛載,可以應用新的掛載選項;
acl:可以使文件系統支持facl功能;
defaults:默認選項;包括:rw, suid, dev, exec, auto, nouser, async, and relatime
loop:使用環回設備;將鏡像文件掛載到掛載點;
defaults,ro,nosuid
-B, --bind:將某個目錄綁定至另一個目錄;
mount --bind|-B 源目錄 目標目錄
卸載文件系統:
umount mount_point|device
掛載光盤:
1.保證光盤鏡像文件放入虛擬機光驅
2.保證光驅處於"已連接"狀態
3.創建光盤掛載點,mount -r /dev/sr0 mount_point
掛載U盤:
需要事先讓系統識別U盤設備,然後根據設備名進行掛載;/dev/sdc1
掛載交互分區:
swapon, swapoff
swapon, swapoff - enable/disable devices and files for paging and swapping
-a:自動掛載存儲於/etc/fstab文件中的交互分區設備;
df
-h -T -P
free
-k -m -g
/etc/fstab文件的格式:
共6個字段,使用空白字符分隔:
1.要掛載的設備
設備文件名
LABEL
UUID
僞文件系統
2.掛載點
swap設備無需掛載點,指定swap即可;
3.文件系統類型
4.掛載選項:defaults
5.轉儲頻率:
使用dump命令備份分區的頻率
0:表示不備份
1:每天備份一次
2:每隔一天備份一次
6.自檢次序
0:不自檢
1:優先自檢,通常只設置在根文件系統上;
2:次級自檢
...
9:最低優先級自檢
Linux系統中常有的壓縮和解壓縮工具:
壓縮:以時間換空間的一種操作;
壓縮的原理:標記和替換
壓縮比:壓縮之前與壓縮之後的文件的大小的比值;
純文本文件壓縮比較大
視頻、圖像等文件壓縮比小
能夠實現壓縮功能的工具:
compress/uncompress:.Z擴展名
gzip/gunzip:.gz擴展名
bzip2/bunzip2:.bz2擴展名
xz/unxz:.xz擴展名,目前壓縮比最高的工具
zip/unzip:.zip擴展名
gzip:
gzip, gunzip, zcat - compress or expand files
-d:解壓縮
-#:以指定的壓縮比進行壓縮,1-9,9爲最高級;默認6
-c:將壓縮結果輸出到標準輸出,不會對原文件進行壓縮;
gzip -c /PATH/TO/FILE > /PATH/TO/COMPRESS_FILE.gz
bzip2:
bzip2, bunzip2 - a block-sorting file compressor, v1.0.4
bzcat - decompresses files to stdout
-d:解壓縮
-#:指定壓縮比進行壓縮,1-9,默認爲6
-k:保留原文件不刪除,創建新的壓縮文件;
xz:
xz, unxz, xzcat - Compress or decompress .xz files
-d:解壓縮
-#:指定壓縮比進行壓縮,1-9,默認爲6
-k:保留原文件不刪除,創建新的壓縮文件;
tar:歸檔程序
tar——tape archive:磁帶檔案
tar [OPTION...] [FILE]...
主選項:
-c:創建檔案文件
-x:釋放檔案文件的內容
-t:查看檔案文件中包含的文件
-u/-r:向檔案文件中添加新的文件
輔助選項:
-f:指定檔案的文件的路徑
-C:在釋放檔案文件中的內容時,指定釋放的路徑;
-z:在創建檔案文件時,調用gzip進行壓縮
-j:在創建檔案文件時,調用bzip2進行壓縮
-J:在創建檔案文件時,調用xz進行壓縮(可能不支持)
--exclude:在釋放檔案文件時,排除某個文件;
-k:在釋放檔案文件時,不會覆蓋同名文件;